一、数组的创建
创建数组
转换为数组
生成从a到b指定n个数的数组
创建全为1的数组
1
| np.ones(shape, dtype=None, order='C')
|
创建指定形状的未初始化的数组,里面内容是随机的
1
| np.empty(shape, dtype=float, order='C')
|
用于沿指定轴重复数组中的元素, 重复一行或者一列后,再重复下一行或列
1
| np.repeat(a, repeats, axis=None)
|
用于沿指定轴堆叠数组的副本,构成一个新的数组,数组按整体重复
创建随机数组
用于生成随机整数
1
| np.random.randint(low, high=None, size=None, dtype=int)
|
用于生成服从均匀分布的随机数
1
| np.random.uniform(low, high, size=None)
|
用于生成服从标准正态分布(均值为0,标准差为1)的随机数的函数
1
| np.random.randn(d0, d1, ..., dn)
|
函数用于随机排列或打乱数组的元素顺序,生成一个新的随机排列的数组或列表。它通常用于数据的随机化,洗牌,或创建随机样本。
生成服从0到1之间均匀分布的随机数
依概率选择数组
用于从给定的数组或序列中进行随机抽样的函数
1
| np.random.choice(a, size=None, replace=True, p=None)
|
用于从指定的序列中随机抽取指定k个数量的唯一元素(不重复抽样)
1
| random.sample(population, k)
|
二、数组的操作运算
数组计算相关
矩阵叉乘
矩阵点乘
两个形状相同的矩阵对应元素的乘法运算
两个形状相同的矩阵对应元素的除法运算
用于计算数组中元素的平均值
1
| np.mean(a, axis=None, dtype=None, out=None, keepdims=False)
|
用于数组中按行或者列求和
计算方差
1
| np.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>)
|
计算数组中每个元素的平方
用于计算向量或矩阵的范数
1
| np.linalg.norm(x, ord=None, axis=None, keepdims=False)
|
用于可逆矩阵求逆
用于计算不可求逆矩阵的伪逆矩阵
用于计算一个数组中的元素的指数幂
1
| np.power(base, exponent)
|
取整
向下取整
自身相乘的n次方
1
| np.linalg.matrix_power(A, 3)
|
求矩阵的秩
1
| rank_A = np.linalg.matrix_rank(A)
|
求矩阵累加
求矩阵累乘
数组之间的欧式距离
数组随机选择
用来从给定的数组中生成随机样本
1
| np.random.choice(a, size=None, replace=True, p=None, axis=0, shuffle=True)
|
排序
按轴进行排序
1
| x.sort(axis=-1, kind=None, order=None)
|
用于返回数组中元素排序后的索引的函数
1
| numpy.argsort(a, axis=-1, kind='quicksort', order=None)
|
对数组进行随机排列
用于对数组执行间接排序
数组查找相关
用于检查给定数组中是否存在任意一个元素满足指定条件。如果数组中有任意一个元素满足条件,则返回 True,否则返回 False
在整个数组中查找最小值的索引
1
| np.argmin(a, axis=None, out=None)
|
用于查找数组中元素的最小值
1
| np.min(a, axis=None, keepdims=False)
|
在整个数组中查找最大值的索引
1
| np.argmax(a, axis=None, out=None)
|
在整个数组中查找最大值
数组中对满足条件的元素进行替换
1 2 3 4
| np.where(condition, x, y)
np.where(condition)
|
查找数组中唯一的元素
查找数组的空元素,返回布尔值
查找数组中非零元素的个数
1
| np.count_nonzero(a, axis=None)
|
查找数组中满足条件的元素的索引
删除指定元素
1 2
| arr = np.delete(arr, np.where(arr == value_to_remove)) arr = np.delete(arr, index_to_remove)
|
两个数组内部元素比较
若第一个数组中的元素大于第二个数组中对应位置的元素结果是True
1
| np.greater(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
|
若第一个数组中的元素小于第二个数组中对应位置的元素结果是True
数组维度相关操作
用于从数组x中移除所有维度为1的维度
增加一个新的维度
1
| [:, np.newaxis]与[np.newaxis, :]
|
.flatten()用于将多维数组展平为一维数组,创建一个副本
1
| np.asarray(results).flatten()
|
将多维数组中的所有元素按照一维的顺序排列,不是副本
用于连接(合并)数组的函数。它可以沿指定的轴将多个数组连接在一起
1
| np.concatenate((a1, a2, ...), axis=0, out=None)
|
用于在水平方向堆叠(水平拼接)多个数组或矩阵
1
| np.hstack((array1, array2))
|
用于垂直堆叠数组的函数
1
| np.vstack((array1, array2))
|
1
| np.row_stack((array1, array2))
|
用于按列将输入数组堆叠在一起
1
| np.column_stack((arr1, arr2, arr3))
|
用于将向量按水平方向翻转
用于沿指定的轴重复数组
三、 数组的广播
用于创建一个与指定数组具有相同形状的新数组,并填充指定的常量值。
1
| np.full_like(a, fill_value, dtype=None, order='K', subok=True, shape=None)
|
用于在指定轴上重复数组中的元素
1
| np.repeat(array, n, axis=0)
|
用于在指定轴上重复整个数组
四、数组类型数据的存储与读取
数据存储
1 2 3 4 5 6 7 8 9 10 11 12
| import numpy as np
best_individual_ture_fitness_record = np.array([5012.145430434681, 6218.152152733865, 3671.3336005601905, 1847.8489548514644])
file_name = "best_individual_ture_fitness.txt"
np.savetxt(file_name, best_individual_ture_fitness_record)
print(f"数据已保存到 {file_name}")
|
数据读取
1 2 3 4 5 6 7 8 9 10 11 12
| import numpy as np
file_name = "best_individual_ture_fitness.txt"
best_individual_ture_fitness_record = np.loadtxt(file_name)
print("读取的数组:") print(best_individual_ture_fitness_record)
|
numpy类型数据转换为列表
1 2 3 4 5 6 7 8 9 10
| import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
list_2d = array_2d.tolist()
print(list_2d)
|