NumPy 学习

​ NumPy是一个用于处理数组的Python库。包含线性代数、傅里叶变换和矩阵领域的函数。部分是python编写的,大部分需要快速计算是C或C++完成的。

​ NumPy中的数组对象称为 ndarray。数组存储在内存中的一个连续位置,与列表不同,故进程可以高效访问和操作。

​ 数组在代码中为numpy.ndarry类型,NumPy数组提供了ndim属性,返回一个整数表示数组的维度。

import numpy as np
a = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
print(a.ndim)
# 创建一个5维数组
arr = np.array([1, 2, 3, 4], ndmin=5)
print(arr)

​ 五维数组中,最内层维度(第5个维度)有四个元素,第4个维度为1个元素,即向量,第3个维度有1个元素,即带有向量的矩阵,第2个维度有1个元素,即3D数组,第一个维度有1个4D数组元素。

数组索引

# 访问第一个数组中的第二个数组的第三个元素
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(arr[0, 1, 2])
# 使用负索引从数组末尾访问数组 打印第二个维度的最后一个元素
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('Last element from 2nd dim: ', arr[1, -1])

数组切片

​ 切片即从一个给定的索引到另一个给定的索引中取出元素。
注:结果包含起始索引,但不包含结束索引

# [start:end:step] 不传递start 则为0; 不传递end视为该维度数组的长度; 不传递step 则为1
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5]) # 输出2 3 4 5

# 步长:切片中元素间的间隔
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5:2]) # 输出 2 4

# arr第一个参数是选择0 1两行 第二个参数是选择1 2 3 三列
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[0:2, 1:4]) # 输出 [2 3 4] [7 8 9]
CC BY-NC-SA 4.0 Deed | 署名-非商业性使用-相同方式共享
最后更新时间:2025-10-20 20:17:28