CSV文件的存储
直接上代码,这种文件存储,无论是什么文件的存储,都是格式问题,可能重点在数据类型和保存的样式:
a = np.arange(12).reshape(3, 4)#生成3*4的矩阵
np.savetxt('a.csv', a, fmt="%d", delimiter=',')#进行矩阵的存储,和该项目放在一起
np.loadtxt('第2讲/a.csv', dtype=int, delimiter=',')#进行矩阵的读出
np.loadtxt('第2讲/a.csv', dtype=int, delimiter=',', unpack=True)#进行逆向输出
随机种子
生成随机数很容易,但有时候我们只想让他随机一次,之后把生成的这个随机数给固定住,这个时候就要用到随机数种子了。
np.random.seed(0)#随机种子,随机完之后就不会再变了。
a = np.random.randint(0, 10)#在0-9中随机生成一个数字
b = np.random.randint(0, 10)
c = np.random.randint(0, 10)
d = np.random.randint(0, 10)
np.random.seed(0)
e = np.random.randint(0, 10)
f = np.random.randint(0, 10)
g = np.random.randint(0, 10)
h = np.random.randint(0, 10)
y = np.random.randint(0, 10)#注意观察e,f,g,h和前面的数据有什么规律。思考一下如何让y也有这种规格呢?
a, b, c, d,e,f,g,h,y
随机数的选择
这个随机选择不是特别理解,感觉用处不大,只能采用大数优先输出的概率来进行choice,不太科学,应该还有其它办法进行指定概率输出。
# https://blog.youkuaiyun.com/elephant_my/article/details/115613692
# numpy.random.choice(a, size=None, replace=True, p=None)
# 参数p:a中每个元素采样的概率
a = np.random.randint(0, 100, (10))
a, np.random.choice(a, (20), p=/np.sum(a)) #a/np.sum(a)
# a必须是1维数据
统计函数
进行并列元素之间的指定相加操作,可能有利于高级数学统计,目前不知道实际用在哪里。
a = np.arange(24).reshape(2, 3, 4)
np.sum(a)#a矩阵所有元素之和
a.shape, np.sum(a, axis=0)#axis=0其实就是最大的元素之间进行相加操作,算是并联的每一项进行相加操作。
a.shape, np.sum(a, axis=1)#axis=1算是第二大项之间进行相加操作
#稍微难一点的扩展操作,其实无非数组维数更多了一些,axis中对应的数字也可以更多一些了。
data = np.random.randint(0, 5, [2,3,4,5])#这个可以理解为2个大部分,再3个第二大部分,最后的4,5就类似于矩阵的行和列了,当然如果把矩阵本身看成数字的话,前两个本身也是矩阵。
data, np.sum(data, axis=0), data.shape, np.sum(data, axis=0)