📜  映射 numpy 数组 - Python (1)

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

映射 NumPy 数组 - Python

什么是 NumPy 数组?

NumPy 是 Python 上广泛使用的一种科学计算库,其中最重要的是 ndarray 类型,也就是多维数组。NumPy 数组提供了高效的数学函数和工具来处理多维数组,尤其是向量和矩阵计算。NumPy 数组的最大优点是它们提供了非常高效的数学操作,与 Python 原生的列表相比,运行速度更快,采用更少的内存。

如何创建 NumPy 数组?

以下是创建 NumPy 数组的几种方法:

1. 从 Python 现有列表中创建数组
import numpy as np

lst = [1, 2, 3, 4]
arr = np.array(lst)

print(arr)

# Output:
# [1 2 3 4]

2. 创建一个定长数组
import numpy as np

arr = np.zeros((3, 4)) # 3x4 的数组元素都为 0

print(arr)

# Output:
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]

3. 创建一个随机数组
import numpy as np

arr = np.random.rand(3, 4) # 3x4 的随机浮点数数组

print(arr)

# Output:
# [[0.03592565 0.73314851 0.84590466 0.25788365]
#  [0.66767789 0.32748273 0.60498121 0.1524165 ]
#  [0.77712231 0.37247391 0.39370291 0.13572522]]

如何映射 NumPy 数组?
1. 切片(Slicing)操作
import numpy as np

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

# 获取第一行和第二行的所有列
print(arr[0:2,:])

# Output:
# [[1 2 3]
#  [4 5 6]]

# 获取所有行的第二列
print(arr[:, 1])

# Output:
# [2 5 8]

2. 使用布尔型数组进行过滤
import numpy as np

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

# 获取大于 5 的所有元素
bool_arr = arr > 5
print(bool_arr)

# Output:
# [[False False False]
#  [False False  True]
#  [ True  True  True]]

# 对大于 5 的元素进行索引
print(arr[bool_arr])

# Output:
# [6 7 8 9]

3. 花式索引(Fancy Indexing)
import numpy as np

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

# 获取 (0,0), (1,1), (2,0) 这三个位置的元素
print(arr[[0,1,2],[0,1,0]])

# Output:
# [1 5 7]

结论

NumPy 数组是 Python 中最重要的数据结构之一,它在大数据和科学计算领域得到广泛的应用。Python 中 NumPy 数组的基本操作非常灵活,使用切片、筛选索引和花式索引可以完成各种任务。