numpy的使用教程

一、创建多维数组:

多维数组对象: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)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值