跳转至

NumPy数组元素的添加和删除

在 NumPy 中,可以通过多种方法向数组中添加和删除元素。这些方法包括 np.appendnp.insertnp.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.vstacknp.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_

new_arr = np.r_[arr1, arr2]
print(new_arr)
# 输出: [1 2 3 4 5 6]

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 数组中添加或删除元素,以满足不同的数据处理需求。

评论