Python中的Numpy 面向数组编程常见操作

  • Post category:Python

以下是关于“Python中的Numpy 面向数组编程常见操作”的完整攻略。

什么是numpy

numpy是Python语言的一个扩展库,用于使用Python语言进行科学计算。numpy与Python内置的列表(list)类似,但是numpy的数组(array)可以包含多个同类型的元素,并且支持各种各样的运算和操作。

numpy的数组操作

在numpy中,最常用的数组是一维数组和二维数组,它们可以按照顺序访问、切片、索引、迭代等操作,下面列举了常见的numpy数组操作。

创建数组

我们可以使用numpy库里的array函数来创建numpy数组。

import numpy as np

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

上面的代码创建了一个一维的数组,如果需要创建二维数组或更高维度的数组,则需要传递一个嵌套列表或元组来创建。

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

数组属性

在numpy中,我们可以通过对数组的属性来获取与它有关的元数据。常用的数组属性包括 dtype, shape, size 等。

c = np.array([1, 2, 3, 4, 5])
print(c.dtype)  # int64
print(c.shape)  # (5,)
print(c.size)   # 5

上面的代码中,dtype 表示数组的元素类型,shape 表示数组的维度,size 表示数组元素的数量。

数组索引和切片

在numpy中,我们可以像python列表一样通过索引和切片来访问数组中的元素。

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

print(d[0])    # 1
print(d[1:3])  # [2 3]
print(d[-1])   # 5

数组运算

在numpy中,我们可以像python列表一样对数组进行各种运算。numpy提供了很多的函数和运算符,用于操作数组。

e = np.array([1, 2, 3, 4, 5])
f = np.array([6, 7, 8, 9, 10])

print(e + f)    # [ 7  9 11 13 15]
print(e - f)    # [-5 -5 -5 -5 -5]
print(e * f)    # [ 6 14 24 36 50]
print(e / f)    # [0.16666667 0.28571429 0.375      0.44444444 0.5       ]

g = np.array([[1, 2, 3], [4, 5, 6]])
h = np.array([[7, 8, 9], [10, 11, 12]])

print(g + h)   # [[ 8 10 12]
               #  [14 16 18]]
print(g - h)   # [[-6 -6 -6]
               #  [-6 -6 -6]]
print(g * h)   # [[ 7 16 27]
               #  [40 55 72]]
print(g / h)   # [[0.14285714 0.25       0.33333333]
               #  [0.4        0.45454545 0.5       ]]

数组迭代

在numpy中,我们可以像python列表一样使用for循环来遍历数组中的每个元素,同时我们可以使用 nditer 函数或迭代器对象来迭代多维数组。

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

for x in i:
    print(x)

# 输出:
# [1 2 3]
# [4 5 6]

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

for x in np.nditer(j):
    print(x)

# 输出:
# 1
# 2
# 3
# 4
# 5
# 6

以上是numpy常见的数组操作,其他的数组操作可以参考numpy官方文档。

2个示例说明

示例1:矩阵相加

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])

c = a + b
print(c)

# 输出:
# [[ 8 10 12]
#  [14 16 18]]

上面的代码使用了numpy的数组操作符号 + 来对2个二维数组进行相加。

示例2:矩阵转置

import numpy as np

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

# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

上面的代码使用了numpy的 T 函数来对二维数组进行转置,转置功能类似于矩阵旋转。

至此,我们已经讲解了numpy中的数组操作的完整攻略和2个示例。