NumPy操作数组最常用的7个方法(组合、分裂、运算、广播…)

NumPy数组支持许多常用的操作方法,包括索引、切片、聚合函数、广播等等。在本文章中将会介绍一些Numpy数组常用的操作方法。

NumPy 数组切片

可以使用切片来访问NumPy数组中的子数组。例如:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[0:2, 1:3])

输出结果为:

[[2 3]
 [5 6]]

NumPy 数组形状操作

可以使用NumPy的reshape函数来更改数组的形状。例如:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape(3, 2)
print(b)

输出结果为:

[[1 2]
 [3 4]
 [5 6]]

NumPy 数组组合

NumPy数组还支持数组组合,示例代码:

import numpy as np

# 创建两个一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 将两个数组在行方向组合
c = np.concatenate((a, b))
print(c)

# 将两个数组在列方向组合
d = np.stack((a, b), axis=1)
print(d)

NumPy 数组分裂

NumPy数组支持将一个数组分裂成多个,方法很简单,示例如下:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = np.split(arr, 3)
print(new_arr)

输出结果为:

[array([1, 2]), array([3, 4]), array([5, 6])]

NumPy 数组运算

NumPy还可以快捷方面地对数组进行运算,例如:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
new_arr = arr1 + arr2
print(new_arr)

NumPy 数组广播

广播是 NumPy 数组中的一个重要功能,可以在形状不同的数组之间执行二元操作。例如:

import numpy as np

# 创建一个形状为(3, 3)的矩阵
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建一个形状为(3, 1)的向量
b = np.array([[10], [20], [30]])

# 使用广播将向量b加到矩阵a的每一行
c = a + b

print(c)

输出结果如下:

[[11 12 13]
 [24 25 26]
 [37 38 39]]

Numpy 聚合函数

NumPy数组还支持许多聚合函数,例如 sum()、mean()、max()、min() 等等。示例代码:

import numpy as np

# 创建一个 3x3 的二维数组
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 求和
print(np.sum(a))  # 输出 45
print(np.sum(a, axis=0))  # 沿第 0 轴求和,输出 [12 15 18]
print(np.sum(a, axis=1))  # 沿第 1 轴求和,输出 [ 6 15 24]

# 平均值
print(np.mean(a))  # 输出 5.0
print(np.mean(a, axis=0))  # 沿第 0 轴求平均值,输出 [4. 5. 6.]
print(np.mean(a, axis=1))  # 沿第 1 轴求平均值,输出 [2. 5. 8.]

# 最大值和最小值
print(np.max(a))  # 输出 9
print(np.max(a, axis=0))  # 沿第 0 轴求最大值,输出 [7 8 9]
print(np.max(a, axis=1))  # 沿第 1 轴求最大值,输出 [3 6 9]
print(np.min(a))  # 输出 1
print(np.min(a, axis=0))  # 沿第 0 轴求最小值,输出 [1 2 3]
print(np.min(a, axis=1))  # 沿第 1 轴求最小值,输出 [1 4 7]

以上就是NumPy最常用的操作数组的方法。

本文链接:https://my.lmcjl.com/post/19650.html

展开阅读全文

4 评论

留下您的评论.