NumPy数组元素的添加和删除
在 NumPy 中,可以通过多种方法向数组中添加和删除元素。这些方法包括 np.append
、np.insert
、np.delete
等。下面详细介绍这些方法及其示例。
添加元素
np.append
np.append
函数用于将值附加到数组的末尾。注意,np.append
返回一个新数组,而不修改原数组。
import numpy as np
# 一维数组
arr = np.array([1, 2, 3])
new_arr = np.append(arr, [4, 5])
print(new_arr) # 输出: [1 2 3 4 5]
# 二维数组
arr_2d = np.array([[1, 2], [3, 4]])
new_arr_2d = np.append(arr_2d, [[5, 6]], axis=0)
print(new_arr_2d)
# 输出:
# [[1 2]
# [3 4]
# [5 6]]
new_arr_2d = np.append(arr_2d, [[5], [6]], axis=1)
print(new_arr_2d)
# 输出:
# [[1 2 5]
# [3 4 6]]
np.insert
np.insert
函数用于在指定索引位置插入值。返回一个新数组,而不修改原数组。
# 一维数组
arr = np.array([1, 2, 3])
new_arr = np.insert(arr, 1, [4, 5])
print(new_arr) # 输出: [1 4 5 2 3]
# 二维数组
arr_2d = np.array([[1, 2], [3, 4]])
new_arr_2d = np.insert(arr_2d, 1, [5, 6], axis=0)
print(new_arr_2d)
# 输出:
# [[1 2]
# [5 6]
# [3 4]]
new_arr_2d = np.insert(arr_2d, 1, [5, 6], axis=1)
print(new_arr_2d)
# 输出:
# [[1 5 2]
# [3 6 4]]
删除元素
np.delete
np.delete
函数用于删除指定索引位置的值。返回一个新数组,而不修改原数组。
# 一维数组
arr = np.array([1, 2, 3, 4, 5])
new_arr = np.delete(arr, [1, 3])
print(new_arr) # 输出: [1 3 5]
# 二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
new_arr_2d = np.delete(arr_2d, 1, axis=0)
print(new_arr_2d)
# 输出:
# [[1 2 3]
# [7 8 9]]
new_arr_2d = np.delete(arr_2d, 1, axis=1)
print(new_arr_2d)
# 输出:
# [[1 3]
# [4 6]
# [7 9]]
np.concatenate
添加数组
np.concatenate
函数用于沿指定轴连接数组。适用于添加多个数组。
# 一维数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
new_arr = np.concatenate((arr1, arr2))
print(new_arr) # 输出: [1 2 3 4 5 6]
# 二维数组
arr1_2d = np.array([[1, 2], [3, 4]])
arr2_2d = np.array([[5, 6], [7, 8]])
new_arr_2d = np.concatenate((arr1_2d, arr2_2d), axis=0)
print(new_arr_2d)
# 输出:
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
new_arr_2d = np.concatenate((arr1_2d, arr2_2d), axis=1)
print(new_arr_2d)
# 输出:
# [[1 2 5 6]
# [3 4 7 8]]
np.vstack
和 np.hstack
这两个函数用于沿垂直方向(按行)和水平方向(按列)堆叠数组。
np.vstack
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
new_arr = np.vstack((arr1, arr2))
print(new_arr)
# 输出:
# [[1 2 3]
# [4 5 6]]
np.hstack
arr1 = np.array([[1], [2], [3]])
arr2 = np.array([[4], [5], [6]])
new_arr = np.hstack((arr1, arr2))
print(new_arr)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
np.r_
和 np.c_
np.r_
和 np.c_
提供了一种简便的方法来连接数组。
np.r_
np.c_
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
new_arr = np.c_[arr1, arr2]
print(new_arr)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
通过这些方法,您可以灵活地向 NumPy 数组中添加或删除元素,以满足不同的数据处理需求。