一、数组的创建

创建数组

转换为数组

1
2
# 将 arrs 转换为 NumPy 数组。如果 arr 已经是 NumPy 数组,那么它将保持不变。如果 arr 是列表或其他可迭代对象,它将被转换为 NumPy 数组。
np.asarray(arrs)

生成从a到b指定n个数的数组

1
np.linspace(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.tile(A, reps)

创建随机数组

用于生成随机整数

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)

函数用于随机排列或打乱数组的元素顺序,生成一个新的随机排列的数组或列表。它通常用于数据的随机化,洗牌,或创建随机样本。

1
np.random.permutation()

生成服从0到1之间均匀分布的随机数

1
np.random.rand()

依概率选择数组

用于从给定的数组或序列中进行随机抽样的函数

1
np.random.choice(a, size=None, replace=True, p=None)

用于从指定的序列中随机抽取指定k个数量的唯一元素(不重复抽样)

1
random.sample(population, k)

二、数组的操作运算

数组计算相关

矩阵叉乘

1
np.cross(arr1, arr2)

矩阵点乘

1
np.dot(arr1, arr2)

两个形状相同的矩阵对应元素的乘法运算

1
np.multiply(arr1, arr2)

两个形状相同的矩阵对应元素的除法运算

1
np.divide(arr1, arr2)

用于计算数组中元素的平均值

1
np.mean(a, axis=None, dtype=None, out=None, keepdims=False)

用于数组中按行或者列求和

1
np.sum(arr, axis=1)

计算方差

1
np.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>)

计算数组中每个元素的平方

1
np.array(arr)

用于计算向量或矩阵的范数

1
np.linalg.norm(x, ord=None, axis=None, keepdims=False)

用于可逆矩阵求逆

1
np.linalg.inv()

用于计算不可求逆矩阵的伪逆矩阵

1
np.linalg.pinv()

用于计算一个数组中的元素的指数幂

1
np.power(base, exponent)

取整

1
np.abs(arr)

向下取整

1
np.floor(arr)

自身相乘的n次方

1
np.linalg.matrix_power(A, 3)

求矩阵的秩

1
rank_A = np.linalg.matrix_rank(A)

求矩阵累加

1
np.cumsum(arr, axis=0)

求矩阵累乘

1
np.cumprod(arr, axis=0)

数组之间的欧式距离

1
np.linalg.norm(x - y)

数组随机选择

用来从给定的数组中生成随机样本

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)

对数组进行随机排列

1
np.random.shuffle(arr)

用于对数组执行间接排序

1
np.lexsort(arr)

数组查找相关

用于检查给定数组中是否存在任意一个元素满足指定条件。如果数组中有任意一个元素满足条件,则返回 True,否则返回 False

1
np.any()

在整个数组中查找最小值的索引

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
.max()

数组中对满足条件的元素进行替换

1
2
3
4
np.where(condition, x, y)

#当只有condition时返回满足条件的索引
np.where(condition)

查找数组中唯一的元素

1
np.unique()

查找数组的空元素,返回布尔值

1
np.isnan(x)

查找数组中非零元素的个数

1
np.count_nonzero(a, axis=None)

查找数组中满足条件的元素的索引

1
np.argwhere(a)

删除指定元素

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

1
np.less(x1, x2)

数组维度相关操作

用于从数组x中移除所有维度为1的维度

1
np.squeeze(x)

增加一个新的维度

1
[:, np.newaxis]与[np.newaxis, :]

.flatten()用于将多维数组展平为一维数组,创建一个副本

1
np.asarray(results).flatten()

将多维数组中的所有元素按照一维的顺序排列,不是副本

1
np.ravel() 

用于连接(合并)数组的函数。它可以沿指定的轴将多个数组连接在一起

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.fliplr(arr)

用于沿指定的轴重复数组

1
np.tile(A, reps)

三、 数组的广播

用于创建一个与指定数组具有相同形状的新数组,并填充指定的常量值。

1
np.full_like(a, fill_value, dtype=None, order='K', subok=True, shape=None)

用于在指定轴上重复数组中的元素

1
np.repeat(array, n, axis=0)

用于在指定轴上重复整个数组

1
np.tile(array, (m, 1))

四、数组类型数据的存储与读取

数据存储

1
2
3
4
5
6
7
8
9
10
11
12
import numpy as np

# 假设 best_individual_ture_fitness_record 包含要保存的数据
best_individual_ture_fitness_record = np.array([5012.145430434681, 6218.152152733865, 3671.3336005601905, 1847.8489548514644])

# 指定保存的文件名
file_name = "best_individual_ture_fitness.txt"

# 使用 np.savetxt 将数据保存到文本文件
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"

# 使用 np.loadtxt 读取文件中的数据
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

# 创建一个二维NumPy数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 将二维数组转换为Python列表
list_2d = array_2d.tolist()

# 打印转换后的列表
print(list_2d)