numpy简介
由多维数组对象和用于处理数组的例程集合组成的库。
支持高级大量的维度数组与矩阵运算。
从已有数据中创建数组
import numpy as np
list1=[[1.2,2.4,1.6,4.5],[1.2,2.4,1.6,4.5]]
nd=np.array(list1)
print(nd)
print(nd.shape , type(nd))
'''
[[1.2 2.4 1.6 4.5]
[1.2 2.4 1.6 4.5]]
(2, 4) <class 'numpy.ndarray'>
'''
利用random模块生成数组
random可生成0-1之间的随机数
nd1=np.random.random([4,4])
print(nd1)
print(nd1.shape)
'''
[[0.29100211 0.8134726 0.99157808 0.48078787]
[0.91546793 0.38320715 0.912539 0.27676666]
[0.72916499 0.62153079 0.32706851 0.22211261]
[0.21746885 0.6298782 0.38656598 0.66934509]]
(4, 4)
'''
创建特定形状的多维数组
#生成全是0的3×3矩阵
nd2=np.zeros([3,3])
print(nd2)
#生成全是1的3×3矩阵
nd3=np.ones([3,3])
print(nd3)
#生成3阶单位矩阵
nd4=np.eye(3)
print(nd4)
#生成3阶对角矩阵
nd5=np.diag([1,2,3])
print(nd5)
'''
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[1 0 0]
[0 2 0]
[0 0 3]]
'''
除了取对角矩阵外,diag函数还可以按斜率取出矩阵中的对应斜率直线所穿过的元素。
[ [1,2,3]
? [4,5,6]
? [7,8,9] ]
若diag(x,k)函数中参数k=0,则取出主对角线元素[1,5,9],若k=-1,则取出元素[4,8]。
以numpy文件格式保存数据
nd6=np.random.random([3,3])
np.save('./text',nd6)
nd7=np.load('text.npy')
print(nd7)
'''
[[0.36135688 0.39618611 0.8505635 ]
[0.86807059 0.59693809 0.67045774]
[0.15234068 0.28801562 0.60916091]]
'''
利用arange、linspace函数生成数组
arange(10)生成数组[0,1,2...9],函数内设置起始元素参数如arange(0,10)则依然生成数组[0,1,2...9],即省略起始元素参数则默认从0开始。
arange(0,10,2)生成数组[0,2,4...8],即新增步长参数2,依然是按照包头不包尾规则生成数组,即包括起始元素0但不包括10,生成元素截止到10的前一个元素。
linspace函数类似arange函数,但linspace(0,10,11)生成数组[0,1,2...10],0为起始元素10为最终元素,11为元素个数(这里11个元素包头包尾即包括了0和10)。
|