import numpy as np
a=np.array([1,2,3]) #列表作为参数
print(a)
print(type(a)) #类型
print(a.dtype) #每个元素的数据类型
print(a.ndim) #秩(维数,轴数)
print(a.size) #数组长度
print(a.shape) #型
b=np.array([[1.3,5.7,9.1],[2.4,6.8,10.12]])
print(b)
print(b.dtype)
print(b.ndim)
print(b.size)
print(b.shape)
print(b.itemsize) #每个元素的长度
print(b.data) #缓冲区
c=np.array(((1,5,9),(7,5,3))) #元组作为参数
print(c)
d=np.array([(1,5,7),[3,8,4],(7,6,9)]) #元组或列表嵌套的列表作为参数
print(d)
e=np.array([(6,5,7),(9,7,2)],dtype=np.complex64) #指定数据类型
print(e)
f=np.zeros((3,3)) #默认float64 注意括号内的括号 表示参数是一个shape参数
print(f)
g=np.ones((3,3)) #默认float64
print(g)
h=np.arange(0,10) #从0到9
print(h)
i=np.arange(1,16,3) #第三个参数表示间隔
print(i)
j=np.linspace(0,9,3) #第三个参数表示将该范围分为几部分
print(j)
k=np.arange(0,15).reshape(3,5) #将一维数组拆分
print(k)
l=np.random.random((3,3)) #随机数组
print(l)
l=l+2 #数组的算术运算
print(l)
l=l*2
print(l)
print(d)
m=d*d #数组乘数组 同位置元素对应相乘 *在numpy里表示元素级乘法而不是矩阵积
print(m)
n=np.array([(1,2,4),(2,4,7),(4,7,5),(1,3,4)])
#print(d*n) 不同shape数组无法相乘
o=np.array([(1,2,3),(2,3,4),(4,5,6)])
p=np.dot(o,d) #矩阵乘积
print(p)
print(o.dot(d)) #矩阵乘积第二种写法
print(d.dot(o)) #矩阵相乘不满足交换率
print(np.sqrt(d))
print(np.log(d))
print(np.sin(d))
print(d.sum())
print(d.min())
print(d.max())
print(d.mean())
print(d.std()) #标准差
q=np.array([1,2,3,4])
print(q[1]) #索引0 1 2 3
print(q[-3]) #索引-4 -3 -2 -1
print(d[2,2])
print(q[0:3]) #切片
print(q[0:3:2])
print(d)
print(d[0,:])
print(d[:,1])
print(d[0:2,0:2])
print(d[[0,2],0:2]) #不连续的索引0,2(即第一 第三行) 连续的索引0:2(即第一 第二列)
for dd in d:
for ddd in dd:
print(ddd)
print(np.apply_along_axis(np.mean,axis=0,arr=d)) #axis=0 表示按列操作求第一个参数的聚合函数 1表示按行操作
r=np.random.random((4,4))
print(r<0.5) #返回布尔数组
s=r[r<0.5]
print(s)
print(d.ravel()) #ravel转回一维数组
print(d.transpose()) #转置矩阵
t=np.ones((3,3))
u=np.zeros((3,3))
print(np.vstack((t,u))) #以行形式加入新数组
print(np.hstack((t,u))) #以列形式加入新数组
v=np.array([1,2,3])
w=np.array([4,5,6])
x=np.array([7,8,9])
print(np.row_stack((v,w,x)))
print(np.column_stack((v,w,x)))
[A,B,C]=np.hsplit(d,3)
print(A)
[A,B,C]=np.vsplit(d,3)
print(B)
[A,B,C]=np.split(d,[1,3],axis=0)
print(d)
print(A,B,C)
structured=np.array([(1,'first'),(2,'second'),(3,'third')],dtype=('i2,a6')) #结构体数组
print(structured)
print(structured[1])
print(structured['f1']) #第二列名称
structured=np.array([(1,'first'),(2,'second'),(3,'third')],dtype=[('num','i2'),('eng','a6')])
print(structured['eng'])
np.save('save_date',d)
load_date=np.load('save_date.npy')
print(load_date)
data=np.genfromtxt('data.csv',delimiter=',',names=True)
print(data)