📜  Python中的NumPy数组(1)

📅  最后修改于: 2023-12-03 15:34:25.700000             🧑  作者: Mango

Python中的NumPy数组

简介

NumPy是Python中用于科学计算的一个扩展库,它提供了一个强大的数组对象和各种计算和操作数组的函数,比Python自带的列表更高效和方便。

创建一个NumPy数组

创建一个NumPy数组可以使用numpy.array()函数,并将Python列表作为其参数传入,示例如下:

import numpy as np

a = np.array([1, 2, 3])
print(a)

输出:

[1 2 3]
数组的属性

NumPy数组有很多属性,其中常用的有:

  • ndim:数组的维度数
  • shape:数组的形状
  • size:数组中元素的总数
  • dtype:数组中的元素类型

示例:

a = np.array([1, 2, 3])
print(a.ndim)   # 输出:1
print(a.shape)  # 输出:(3,)
print(a.size)   # 输出:3
print(a.dtype)  # 输出:int64

其中,(3,)表示数组的形状是一个元组,表示该数组是一个行向量。

数组的索引和切片

NumPy数组的索引和Python列表类似,通过方括号[]和下标来实现。同时,NumPy数组还支持多维数组的索引和切片,示例:

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[0][1])       # 输出:2
print(a[1, 2])       # 输出:6
print(a[0, 0:2])     # 输出:[1 2]
print(a[:, 1:3])     # 输出:[[2 3]
                     #      [5 6]]

上述代码中,a[0][1]a[1, 2]都是获取数组中的一个元素,通过逗号分隔的下标表示多维数组的索引。a[0, 0:2]a[:, 1:3]则是对数组进行切片,分别表示获取第一行的前两个元素和获取所有行的第二到第三个元素。

数组的运算

NumPy数组支持各种算数运算,包括加、减、乘、除等运算。示例:

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

c = a + b
d = a * b

print(c)  # 输出:[5 7 9]
print(d)  # 输出:[ 4 10 18]

上述代码中,a + ba * b分别是两个数组的加法和乘法。需要注意的是,NumPy数组的加法和乘法都是逐元素进行的,而不是矩阵乘法。

NumPy还提供了丰富的函数和方法,包括数学函数、统计函数、排序、取最大值和最小值等。示例:

a = np.array([2, 3, 1, 5, 4])
print(np.sort(a))      # 输出:[1 2 3 4 5]
print(np.max(a))       # 输出:5
print(np.average(a))   # 输出:3.0
print(np.std(a))       # 输出:1.4142135623730951

上述代码中,np.sort()是将数组进行排序,np.max()是获取数组中的最大值,np.average()是获取数组的平均值,np.std()是获取数组的标准差。