numpy 基础01

import numpy as np
from numpy import newaxis
#方法:help(np.info(np.add))  查看方法
# print(help(np.info(np.add)))
# reshape() #维度(x,y) x--维度 y--元素个数
#arange  相当于range(start,stop,step,dtype)
a=np.arange(15).reshape(3,5)
print(np.reshape(a,(5,3)))

#ndim--轴数(默认0,1,2。。。。)
print(a.ndim)
#shape--数组大小(x,y)
print(a.shape)
#size--元素总个数
print(a.size)
#itemsize--每个元素所占内存空间大小,以字节为单位
print(a.itemsize)
#dtype--元素类型,int64,float64,object,complex...
print(a.dtype)
#
print(type(a))  # <class 'numpy.ndarray'>

print("====================")
b=np.array([1,2,3,4,5,6])
#reshape() #维度(x,y) x--维度 y--元素个数,可以修改维度
print(b.reshape(2,3))
#dtype 可以指导类型
c=np.array([1,2,3,4,5,6],dtype=float)
#如果没有dtype指定,array里面必须为统一类型
d=np.array([1,2,3,4,5,6.2])
#dtype=object 可以为任意类型
e=np.array([1,2,3,4,5,6,7.3,'124'],dtype=object)

print("====================")
#zeros((3,4)) -- 创建充满为0的数组,
f=np.zeros((3,4))
#np.ones((3,4))-- 创建充满为1的数组,
f1=np.ones((3,4),dtype=int)
# np.set_printoptions(threshold=np.nan)  -- 强制打印整列
# np.set_printoptions(threshold=np.nan)
print(np.arange(10000).reshape(10,1000))
print(np.arange(10,100,2))
print("===============")

g = np.arange(20,60,10)
g1=np.arange(1,5)
#两个数组元素个数一一对应相乘
g2=g1*g
print(g1)
print(g)
#max --最大值 ; min --最小值 ; sum--求和 ;mean-- 平均值
# var--标准差 :公式:1/n[(X0-Xmean)^2+(X1-Xmean)^2+....(X0-Xmean)^2]      例如1/4*【(1.25)^2+(0.5)^2+(0.5)^2+(1.25)^2]
#add --求和 ; subtract --相减 ;  multiply--相乘 ;divide--相除;
print(g2.max())
print(g2.min())
print(g2.sum())
print(g2.mean())
print(g1.var())
print(np.add(g,g1))
print(np.subtract(g,g1))
print(np.multiply(g,g1))
print(np.divide(g,g1))
print("=================================================")
#三角函数:np.sin(num*np.pi/180)  sin=y/r  cos=x/r   tan=y/x
ary=np.array([0,30,45,60,90])
print(np.sin(ary*np.pi/180))
print(np.cos(ary*np.pi/180))
print(np.tan(ary*np.pi/180))
print("=================================================")
#矩阵乘法dot或@:A=[[a,b],[c,d]
#B=[[x,y],[u,v]]
#c=A@B=[[a*x+b*u,a*y+b*v]
#       [c*x+d*u,c*y+d*v]]
A=np.array([[1,2],[3,4]])
B=np.array([[1,2],[3,4]])

print(np.dot(A,B))
# [[ 7 10]
#  [15 22]]
A=np.array([[3,4],[3,2]])
B=np.array([[3,2,3],[5,2,3]])
print(A@B)
# [[29 14 21]
#  [19 10 15]]
print("=================================================")
#linspace --等差数列 从0-3 取5个数
b=np.linspace(0,3,4)
print(b)
d=np.exp(b*1j)
print(d)
#[ 1.        +0.j          0.54030231+0.84147098j -0.41614684+0.90929743j       -0.9899925 +0.14112001j]
#sqrt -- 算数平方根
print(np.sqrt(b))
#std--矩阵标准差  :求矩阵标准差的算术平方根  axis=1   计算计算每一列的标准差
print(np.std([1,2,3,4]))
print(np.sqrt(1.25))
print(np.std([[1,2,3,4],[3,4,5,6]],axis=0))
# print(help(np.info(np.std)))
h=np.arange(20).reshape(4,5)
for i in h:
    print(i)
#floor--忽略小数点后边的数
i=(10*np.random.random((3,4)))
print(i)
print(np.floor(i))
#ravel--转化为一维
i1=(i.ravel())
print(i1.shape)
print("====================")
#
a=np.arange(24).reshape(6,4)
print(a)
b=np.arange(24,48).reshape(6,4)
print(b)
# vstack-- 纵向合并  hstack--横向合并
print(np.vstack((a,b)))
c=np.hstack((a,b))
print(c[:newaxis])
#column_stack-- 相当于hstack--横向合并
print(np.column_stack((a,b)))
#concatenate --合并  axis=1 横向 ; axis=0  纵向
print(np.concatenate((a,b),axis=1))
#此函数不会保留MaskedArray输入的屏蔽
a=np.ma.arange(10)
print("===========split=======================")
#array_split --将数组拆分成多个子数组,;hsplit--横向拆分 ;  vsplit--纵向拆分  ;dsplit
a=np.arange(12)
b=np.arange(16.0).reshape(2, 2, 4)
print(np.dsplit(b,2))
print(np.array_split(a,5))
print(np.hsplit(a,6))
b=np.arange(16).reshape(4,4)
c=np.vsplit(b,4)
for c1 in c :
    print(c1)
print("===========dstack=======================")
#dstack --按顺序进行多维组合;  stack--沿新轴加入一系列数组; hstack--横向进行组合;  vstack--纵向进行多维度组合
a=np.array((1,2,3,4,5,6))
b=np.array((7,8,9,10,11,12))
print(a)
print(b)
print(np.dstack((a,b)))
print(np.stack((a,b)))
print(np.hstack((a,b)))
print(np.vstack((a,b)))

猜你喜欢

转载自blog.csdn.net/liming066/article/details/84326485