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

使用Python的Numpy库进行数组操作:创建数组、切片、元素操作等常用函数

发布时间:2023-06-03 09:49:03

Python的Numpy(Numerical Python)库是一个用于科学计算的开源Python库,它提供了对多维数组对象的支持,以及用于数组操作、数学函数、统计函数和随机数生成函数的工具。

在Numpy中,最基本的数据类型是数组(array),它是一种可以存储相同类型数据的数据结构。Numpy数组可以是一维数组(一列数据)、二维数组(列和行的二维矩阵)、三维数组(一个矩阵堆叠在另一个之上)等等。

创建数组:

Numpy中可以通过多种方法创建数组,其中最常用的是使用np.array()函数。可以将Python列表、元组等数据类型传递给np.array()函数,Numpy会自动将其转换为数组。

>>> import numpy as np

>>> x = np.array([1, 2, 3])

>>> print(x)

[1 2 3]

切片:

与Python列表和元组类似,Numpy数组也可以使用切片。可以使用类似[start:stop:step]的语法来指定切片的开始位置、结束位置和步长。

>>> x = np.array([1, 2, 3, 4, 5])

>>> print(x[1:4])  # 打印元素 2, 3, 4

[2 3 4]

>>> y = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

>>> print(y[:2, 1:])  # 打印元素 2, 3, 5, 6

[[2 3]

 [5 6]]

元素操作:

Numpy允许对数组中的元素进行操作,如加减乘除、指数、对数、取整等。

>>> x = np.array([1, 2, 3])

>>> y = np.array([4, 5, 6])

>>> print(x + y)  # 对应元素相加,打印 [5 7 9]

[5 7 9]

>>> print(x * y)  # 对应元素相乘,打印 [4 10 18]

[ 4 10 18]

>>> print(np.exp(x))  # 打印 e^1, e^2, e^3, 即 [ 2.71828183  7.3890561  20.08553692]

[ 2.71828183  7.3890561  20.08553692]

>>> print(np.log10(x))  # 打印以10为底的对数,即 [0, 0.30103, 0.477121]

[0.         0.30103    0.47712125]

>>> print(np.ceil([1.1, 2.2, 3.3]))  # 打印上取整,即 [2. 3. 4.]

[2. 3. 4.]

其它常用函数:

Numpy还提供了许多其它常用的函数,如求和、均值、标准差、最大值、最小值等。

>>> x = np.array([1, 2, 3])

>>> print(np.sum(x))  # 打印所有元素之和,即 6

6

>>> y = np.array([[1, 2], [3, 4]])

>>> print(np.mean(y))  # 打印所有元素的平均值,即 (1+2+3+4)/4 = 2.5

2.5

>>> print(np.std(y))  # 打印所有元素的标准差,即 sqrt((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 + (4-2.5)^2)/2 = 1.118033988

1.118033988749895

>>> print(np.max(y))  # 打印所有元素的最大值,即 4

4

>>> print(np.min(y))  # 打印所有元素的最小值,即 1

1

总结:

Numpy是一个非常强大和实用的Python库,能够帮助大家进行科学计算和处理复杂的大型数据。在使用Numpy时,需要注意的是,它处理的都是同类型的数据,因此不能将不同类型的数据(如字符串和数字)添加到同一个数组中,需要注意数据类型的匹配。