NumPy
1.利用NumPy生成矩阵
import numpy
元素均为零的矩阵
a=numpy.zeros((5,4))
print(a)
元素均为一的矩阵
b=numpy.ones((3,4))
print(b)
对角矩阵
c=numpy.eye(4)
print(c)
数据类型
a=numpy.array([1,2,3,4])
print(a)
print(type(a))
ndmin=n n为最小维数 dtype设置数据类型(bool,int,float,complex)
需要加单引号:https://www.runoob.com/numpy/numpy-dtype.html
aa=numpy.array([0,1,2,3,4,5],ndmin=2,dtype='uint')
print(aa)
利用已有列表、元组、迭代器转换为矩阵
q=[1,2,3]
w=(1,2,3)
e=[(1,2,3),(4,5)]
r=[1,0,0,1]
qn=numpy.asarray(q)
wn=numpy.asarray(w)
en=numpy.asarray(e)
rn=numpy.asarray(r,dtype=bool)
print(qn,'\n',wn,'\n',en,'\n',rn)
it=iter([1,2,3,4,5])
itx=numpy.fromiter(it,dtype=float)
print(itx)
2.矩阵的属性
实例:一个2*3的矩阵
b=numpy.array([[1,2,3,3],[4,5,6,5],[7,8,9,6]])
print(b)
矩阵的维数
print(b.ndim)
矩阵的形状(阶数)
print(b.shape)
矩阵元素的个数
print(b.size)
矩阵元素的类型
print(b.dtype)
矩阵每个元素的大小
print(b.itemsize)
矩阵元素的内存信息
print(b.flags)
矩阵元素的缓冲区
print(b.data)
.real 矩阵元素的实部 .imag 矩阵元素的虚部
实例:一个三维矩阵
c=numpy.array([[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]])
print(c,c.ndim,c.shape,c.size,c.dtype)
3.从数值范围创建数组
.arange(a,b,c) 从a到b(不包括b)间隔c的行向量
c=numpy.arange(1,10,3)
print(c)
.reshape 变换矩阵形状
e=c.reshape([3,1])
print(e)
.linspace(a,b,c) 从a到b(包括b)相同间隔的c个数
d=numpy.linspace(1,100,300,endpoint=False,dtype='float64')
#endpoint= 是否包含b,默认为True
#retstep= 是否显示间距,默认为False
print(d)
.logspace(a,b,base=c) 创建一个从c**a到c**b的等比数列
d=numpy.logspace(1,10,base=10,num=3,endpoint=False,dtype='float64')
#endpoint= 是否包含b,默认为True
#base= 底数,默认为10
#num= 生成的样本数量,默认为50
print(d)
.random((m,n))输出m*n阶随机数,范围为[0,1)
e=numpy.random.random((2,3))
print(e)
4.数据结构化
详细用法:https://www.runoob.com/numpy/numpy-dtype.html
dt=numpy.dtype([('age','int8'),('name','S10'),('isStudent','bool')])
x=numpy.array([(12,'sam',1),(11,'tom',0)],dtype=dt)
print(dt,'\n',x)
print(x['age'])
5.动态数组
s=b'python'
ss=numpy.frombuffer(s,dtype='S2')
#count= 读取数量,默认为-1表示所有数据
#offset= 读取起始位置,默认为0
print(ss)
for i in [1,2,3,6]:
ss=numpy.frombuffer(s,dtype='S'+str(i))
print(ss)
6.切片
a=b'XidianUniversity'
ax=numpy.frombuffer(a,dtype='S1')
print(ax)
a1=slice(2,9,2) #从2到9间隔2,即2,4,6,8
print(a[a1])
print(a[4],'\n',a[6:9],'\n',a[4:],'\n')