np.hstack (horizontal)是numpy库中的一个函数,用于水平(按列顺序)堆叠数组。将具有相同行数的两个或者更多数组拼接成一个更宽的数组
import numpy as np
a = np.array([[1, 2, 3], [1, 2, 3]])
b = np.array([[1, 2, 3], [1, 2, 3]])
c = np.hstack((a, b))
print(c.shape) # (2, 6)
np.vstack (vertical)是numpy库中的一个函数,用于垂直(按行顺序)堆叠数组。将具有相同列数的两个或者更多数组拼接成一个更高的数组
import numpy as np
a = np.array([[1, 2, 3], [1, 2, 3]])
b = np.array([[1, 2, 3], [1, 2, 3]])
c = np.vstack((a, b))
print(c.shape) # (6, 2)
np.argsort (a, axis=-1)是numpy库中的一个函数,返回数组中满足给定条件的元素的索引。可以根据这些索引来得到一个新的有序数组
aixs: 沿哪个轴进行排序,默认是最后一个轴
import numpy as np
a = np.array([3, 4, 1])
index = np.argsort(a) # np.array([2, 0, 1])
a = np.array([[1, 3, 4], [4, 3, 1]])
index = np.argsort(a, axis=-1) # np.array([[0, 1, 2], [2, 1, 0]])
np.maximum用于比较两个数组并返回逐元素的最大值。如果两个数组的形状不同,它将应用广播规则。
import numpy as np
x = np.array([2, 3, 4])
y = np.array([1, 5, 2])
max_values = np.maximum(x, y)
print(max_values) # 输出 [2 5 4]
np.where 是 NumPy 库中的一个非常有用的函数,它返回数组中满足给定条件的元素的索引。此外,它也可以用来根据条件从两个数组中选择元素。 numpy.where(condition, [x, y])
- condition: 一个布尔数组,其中 True 表示满足条件的元素。
- x, y: 可选参数,如果提供,
np.where
将返回一个数组,数组中的元素从 x 或 y 中选择:如果 condition 的元素为 True,则从 x 中选择;为 False 则从 y 中选择。如果不提供,则返回只满足条件的索引
import numpy as np
x = np.array([2, 3, 4])
y = np.array([1, 5, 2])
indices = np.where(x > 3) # np.array([2])
z = np.where(x > 3, x, y) # np.array([1, 5, 4])
数组创建
np.array | np.zeros | np.ones | np.full | np.arange | np.linspace | np.eye |
---|---|---|---|---|---|---|
从python列表或者元组创建数组 | 创建指定形状的数组,元素全部为0 | 创建指定形状的数组,元素全部为1 | 创建指定形状和数值的数组 | 创建一个范围内的数组,类似于range | 创建一个等间距的数组 | 创建一个单位矩阵 |
数组属性
ndarray.ndim | ndarray.shape | ndarray.size | ndarray.dtype |
---|---|---|---|
数组的维度 | 数组的形状,返回一个元组 | 数组中元素的总数 | 数据元素的数据类型 |
数组索引和切片
- 单个元素访问:
arr[i, j]
。 - 切片:
arr[start:stop:step]
,可以多维切片。 - 布尔索引:使用布尔数组来索引。
- 花式索引:使用整数数组进行索引。
数组操作
- reshape: 改变数组形状而不改变数据。
- transpose 或 .T: 转置数组。
- concatenate, vstack, hstack: 数组拼接。
- split: 分割数组。
- flip: 翻转数组。
广播机制
广播机制允许 NumPy 在执行数组运算时自动处理不同形状的数组,使得数组之间的算术运算成为可能。
随机数生成
NumPy 提供 numpy.random 模块来生成随机数:
- rand: 生成[0,1)之间的均匀分布随机数。
- randn: 生成标准正态分布随机数。
- randint: 生成指定范围的随机整数。