numpy 模块学习笔记
一、numpy 生成伪随机数
伪随机数的生成主要是子模块random库的使用(实际使用中注意p的长应当与x的长相同(以代码为例))
import numpy as np
# 设置随即种子
np.random.seed(10)
# 产生30个【0.0,1.0】的随机数并形成 2x5x3 的三维数组
a = np.random.rand(2, 5, 3)
# 产生15个标准正态分布的随机数并生成 3x5 的二维数组
b = np.random.randn(3, 5)
# 产生100个均值为 3 ,标准差为 5 的N(3,5)随机数
np.random.normal(3, 5, 100)
# 产生100个上下界分别为 3 和 7 的均匀分布随机数
np.random.uniform(3, 7, 100)
# 产生34个【3,30) 中的随机整数
np.random.randint(3, 30, 34)
# 产生34个[3,30)中的随机整数
np.random.random_integers(3, 30, 34)
# 从数组中按照给定概率p随机的抽取(放回)20个样本
x = [1, 5, 6.4]
c = np.random.choice(x, 20, replace=True, p=[0.1, 0.4, 0.5])
# 从数组中按照给定概率p随机的抽取(不放回)20个样本
d = np.random.choice(x, 2, replace=False)
二、数据文件的存取
注意shape用于比较数组的宽度
import numpy as np
x = np.random.randn(5, 3)
np.savetxt("txt1.txt", x)
np.savetxt("txt1.csv", x, delimiter=",")
u = np.loadtxt("txt1.txt")
v = np.loadtxt("txt1.csv", delimiter=",")
print(x.shape, u.shape, v.shape, "\n", x == u, "\n", x == v)
print(x, "\n", u, "\n", v, "\n", x == u, "\n", x == v)
# x.shape()用于比较数组的维数
# x.shape() == np.shape(x)
三、数组的维数和形状
# 矩阵、数组、以及有关运算
# 数组的维数和形状
# 以 shape 显示数组的宽度,以 x.dim 显示数组的维度
import numpy as np
lt = []
ls = []
for i in range(10):
lt.append(i)
ls.append(lt)
y = np.array(ls)
print(y)
print(np.shape(y), y.ndim)
print(type(y), y.dtype)
print("y[1, 0] = {}".format(y[1, 0])) # 索引查找值