一、创建多维数组:
多维数组对象:NumPy的核心数据结构是ndarray,它是一个多维数组,可以存储同质数据类型的元素。这些数组可以是一维、二维或更高维度的,非常适合进行向量化操作和矩阵运算。
①创建一维数组:
import numpy as np#导入numpy库,命名为np
data=np.array([1,2,3,4,5,6,7,8,9])#创建了一个一维数组
print(data)
②创建二维数组:
import numpy as np#导入numpy库,命名为np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d)
③创建三维数组:
import numpy as np#导入numpy库,命名为np
array_3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(array_3d)
这三个示例都用到了函数array
④创建全0数组:
利用函数zero生成全为零的数组,需要传入数组的规模。
例如:
import numpy as np
# 创建一个长度为5的一维全零数组
array_1d = np.zeros(5)
print(array_1d)
# 创建一个2x3的二维全零数组
array_2d = np.zeros((2, 3))
print(array_2d)
⑤创建全1数组:
利用函数ones生成全1数组,需要传入数组的规模。
# 创建一个3x3的全一数组
ones_array = np.ones((3, 3))
print("全一数组:\n", ones_array)
⑥使用创建连续序列数组:
利用函数arange创建函数,可以直接给出长度(这样元素默认从0~长度-1),同时也可以指定起始值和终止值。也可以附加上步长。
import numpy as np
# 创建一个从0到9的连续序列数组(不包括10)
array = np.arange(10)
print("连续序列数组:", array)
# 创建一个从5到10的连续序列数组(不包括10)
array = np.arange(5, 10)
print("连续序列数组:", array)
# 创建一个从0到10,步长为2的连续序列数组
array = np.arange(0, 10, 2)
print("连续序列数组:", array)
⑦使用random
创建随机数组:
给定数组的规模,可以生成每一个元素都介于[0, 1)之间。
import numpy as np
# 创建一个2x3的随机数组,元素值在[0, 1)之间
random_array = np.random.rand(2, 3)
print("随机数组:\n", random_array)
二、改变数组的形状:
①reshape函数
reshape函数:可以返回一个新的形状的数组视图,而不改变原数组的数据。如果新形状与原数组的总元素数量不匹配,则会引发错误。
import numpy as np
# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5, 6])
# 改变数组形状为2x3
b = a.reshape((2, 3))
print("使用reshape后的数组:\n", b)
②resize函数:
会直接修改原数组的形状和大小。如果新形状比原数组大,则多出的元素会被填充为0;如果新形状比原数组小,则多余的元素会被丢弃。
import numpy as np
# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5, 6])
# 改变数组形状为2x3
a.resize((2, 3))
print("使用resize后的数组:\n", a)
③flatten函数:
将多维数组展平成一维数组。它返回的是原数组的一个副本,不会修改原数组。
import numpy as np
# 创建一个二维数组
a = np.array([[1, 2, 3], [4, 5, 6]])
# 将二维数组展平成一维数组
b = a.flatten()
print("使用flatten后的数组:", b)
④transpose函数:
方法用于交换数组的轴。例如,可以将一个二维数组的行和列互换,类似于转置矩阵
import numpy as np
# 创建一个二维数组
a = np.array([[1, 2, 3], [4, 5, 6]])
# 转置二维数组
b = a.transpose()
print("使用transpose后的数组:\n", b)
三、数组堆叠:
①vstack:
垂直堆叠数组
import numpy as np
# 创建两个一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 垂直堆叠
result = np.vstack((a, b))
print("使用vstack后的数组:\n", result)
#结果: [[1 2 3] [4 5 6]]
②hstack:
水平堆叠数组
import numpy as np
# 创建两个一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 水平堆叠
result = np.hstack((a, b))
print("使用hstack后的数组:", result)
#结果:[1 2 3 4 5 6]
四、简单数据分析:
①基本统计量:
- 均值 (mean): 计算数组元素的平均值。
- 中位数 (median): 计算数组元素的中位数。
- 标准差 (std): 计算数组元素的标准差。
- 方差 (var): 计算数组元素的方差。
- 最小值 (min): 返回数组中的最小值。
- 最大值 (max): 返回数组中的最大值。
- 求和 (sum): 返回数组元素的总和。
- 累计和 (cumsum): 返回数组元素的累计和。
- 累计积 (cumprod): 返回数组元素的累计积。
import numpy as np
# 创建一个数组
a = np.array([1, 2, 3, 4, 5])
print("均值:", np.mean(a))
print("中位数:", np.median(a))
print("标准差:", np.std(a))
print("方差:", np.var(a))
print("最小值:", np.min(a))
print("最大值:", np.max(a))
print("求和:", np.sum(a))
print("累计和:", np.cumsum(a))
print("累计积:", np.cumprod(a))
②相关系数和协方差:
- 相关系数 (corrcoef): 计算两个数组之间的相关系数矩阵。
- 协方差 (cov): 计算两个数组之间的协方差矩阵。
import numpy as np
# 创建两个数组
x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 4, 3, 2, 1])
# 计算相关系数矩阵
correlation_matrix = np.corrcoef(x, y)
print("相关系数矩阵:\n", correlation_matrix)
# 计算协方差矩阵
covariance_matrix = np.cov(x, y)
print("协方差矩阵:\n", covariance_matrix)
五、创建矩阵以及矩阵乘法、初步运算:
在机器学习之中,创建矩阵以及矩阵乘法是最常用的功能:
numpy.array()
函数来创建矩阵。矩阵乘法可以通过使用
numpy.dot()
函数。
import numpy as np
# 创建两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# 使用numpy.dot()进行矩阵乘法
C = np.dot(A, B)
print("使用numpy.dot()的矩阵乘法结果:")
print(C)
# 使用@运算符进行矩阵乘法
D = A @ B
print("使用@运算符的矩阵乘法结果:")
print(D)
求转置矩阵、矩阵求逆、矩阵的特征值和特征向量、
import numpy as np
matrix = np.array([[1, 2], [3, 4]])
#利用函数transpose获取转置矩阵
transpose_matrix = np.transpose(matrix)
print("Transpose of the matrix:\n", transpose_matrix)
square_matrix = np.array([[1, 2], [3, 4]])
#矩阵求逆,只有矩阵为方阵且不为0的时候才有逆矩阵,利用函数linalg.inv实现
try:
inverse_matrix = np.linalg.inv(square_matrix)
print("Inverse of the square matrix:\n", inverse_matrix)
except np.linalg.LinAlgError:
print("Matrix is singular and cannot be inverted.")
#使用numpy.linalg.eig()来计算矩阵的特征值和特征向量。
eigenvalues, eigenvectors = np.linalg.eig(square_matrix)
print("Eigenvalues of the square matrix:\n", eigenvalues)
print("Eigenvectors of the square matrix:\n", eigenvectors)