欢迎访问宙启技术站
智能推送

Python函数库之Numpy的数组操作方法

发布时间:2023-05-24 22:01:00

Numpy是Python中最常用的科学计算和数据处理库之一。它提供了高效的数组操作、数学函数、线性代数、FFT和随机数生成等功能。本文将介绍Numpy的数组操作方法。

1. 创建数组

可以通过Numpy提供的array()函数来创建一维或多维数组。例如:

import numpy as np

# 一维数组
a = np.array([1, 2, 3])
print(a)

# 二维数组
b = np.array([[1, 2], [3, 4]])
print(b)

输出结果分别为:

[1 2 3]
[[1 2]
 [3 4]]

2. 数组的形状

可以使用shape属性来获取数组的形状,也可以使用reshape()函数来更改数组的形状。例如:

import numpy as np

# 获取数组的形状
a = np.array([[1, 2], [3, 4]])
print(a.shape)

# 改变数组的形状
b = np.array([1, 2, 3, 4, 5, 6])
c = b.reshape(2, 3)
print(c)

输出结果分别为:

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

3. 数组的索引和切片

可以使用索引和切片操作来访问数组的元素。索引从0开始,切片的格式为[start:end:step],其中step表示步长。例如:

import numpy as np

# 索引操作
a = np.array([[1, 2], [3, 4]])
print(a[0, 1])

# 切片操作
b = np.array([1, 2, 3, 4, 5, 6])
print(b[1:5:2])

输出结果分别为:

2
[2 4]

4. 数组的运算

Numpy提供了丰富的数组运算功能,包括加、减、乘、除等基本运算,以及矩阵乘法、点乘等高级运算。例如:

import numpy as np

# 加、减、乘、除
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(a - b)
print(a * b)
print(a / b)

# 矩阵乘法、点乘
c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
print(np.dot(c, d))
print(np.multiply(c, d))

输出结果分别为:

[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[0.25 0.4  0.5 ]
[[19 22]
 [43 50]]
[[ 5 12]
 [21 32]]

5. 数组的聚合运算

Numpy还提供了一系列的聚合函数来对数组进行统计和概括,例如求和、平均值、最大值、最小值、方差等。例如:

import numpy as np

# 求和、平均值、最大值、最小值、方差
a = np.array([1, 2, 3])
print(np.sum(a))
print(np.mean(a))
print(np.max(a))
print(np.min(a))
print(np.var(a))

输出结果分别为:

6
2.0
3
1
0.6666666666666666

6. 数组的条件运算

可以使用条件运算对数组进行筛选和过滤。例如:

import numpy as np

# 筛选出大于2的元素
a = np.array([1, 2, 3])
print(a > 2)

# 过滤掉小于2的元素
b = np.array([1, 2, 3, 4, 5])
print(b[b > 2])

输出结果分别为:

[False False  True]
[3 4 5]

7. 数组的广播

Numpy支持数组的广播操作,使得不同形状的数组可以进行运算。广播的规则是,对于两个形状不同的数组,将它们的形状左补齐,使得它们的形状可以逐位匹配。例如:

import numpy as np

# 广播操作
a = np.array([1, 2, 3])
b = np.array([[4], [5], [6]])
print(a + b)

输出结果为:

[[5 6 7]
 [6 7 8]
 [7 8 9]]

本文介绍了Numpy的数组操作方法,包括创建数组、数组的形状、索引和切片、数组的运算、数组的聚合运算、数组的条件运算和数组的广播。这些是使用Numpy进行科学计算和数据处理的必要工具。