1 生成Numpy数组
- 从已有数据中创建数组
import numpy as np
ls1 = [1,2,3]
nd1 = np.array(ls1)
print(type(nd1))
- 利用random模块生成数组
np.random.seed(0) # 设置随机数种子
nd = np.random.random([2,2]) # 生成0-1之间的随机数
nd = np.random.uniform(1,9,[3,3]) # 生成均匀分布的随机数
nd = np.random.randint(1,9,[3,3]) # 生成随机的整数
nd = np.random.normal(0,1,[3,3]) # 生成正太分布
nd = np.random.randn(10,10) # 生成正太分布的随机数
nd = np.random.shuffle(nd) # 打乱生成的随机数
print(nd)
- 创建特定形状的多维数组
nd = np.zeros((3,3)) # 创建全0的数组
nd = np.ones((3,3)) #创建全1的数组
nd = np.empty((3,4)) # 创建空数组,值为未初始化的垃圾值
nd = np.zeros_like(nd)
nd = np.ones_like(nd)
nd = np.empty_like(nd)
nd = np.eye(5) # 创建对角矩阵
nd = np.full((3,4), 666) # 创建全为666的数组
print(nd)
- 利用arange、linspace函数生成数组
nd = np.linspace(0,1,10,endpoint=True)
print(nd)
# [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ]
2 获取元素
nd = np.random.random([10])
print(nd[3]) # 获取某个元素
print(nd[2:8]) # 获取某段数据
print(nd[2:8:2]) # 获取固定间隔的某段数据
nd = np.arange(25).reshape([5,5])
print(nd[(nd>2)&(nd<5)]) # 获取数值在一个值域之内的数据
print(nd[1:4,:]) # 截取行数据
print(nd[:,4:7]) # 截取列数据
3 Numpy的算术运算
- 对应元素相乘
对应元素相乘(Element-Wise Product)是两个矩阵中对应元素乘积。np.multiply函数用于数组或矩阵对应元素相乘,输出与相乘数组或矩阵的大小一致。
a = np.random.randn(3,4)
b = np.random.randn(3,4)
c = np.multiply(a,b)
- 点积运算
点积运算(Dot Product)又称为内积,在Numpy用np.dot表示。
a = np.random.randn(3,4)
b = np.random.randn(4,3)
c=np.dot(a,b)
4 数组变形