最基本用法:
import numpy as np
araay=np.array([[1,2,3],
[4,5,6],
[7,8,9]])
print(araay)
print(araay.ndim) #维度
print(araay.shape) #几行几列
print(araay.size) #元素个数
print(araay.dtype) #元素类型
注意,np.array()括号里面,是二维的写法,如果写成,np.array([1,2,3]),这表示是一个一维数组,不是矩阵。
a = np.array([1,2,3,4.5],dtype=np.int) #设置数据元为int型,相应的还有float ,int32,int64,float32,float64
print(a)
# #如果没有dtype定义,会发现打印出来的b都有. 变成了float
b = np.zeros( (3,3),dtype=np.int64) #相应的,还有,np.ones
print(b)
# #range排序生成矩阵 参数的意思分别为 开始值 结束值 间隔值
d=np.arange(1,10,1).reshape((3,3))
print(d)
# #线性排序生成矩阵 参数的意思分别为 开始值 结束值 共几个数据
e=np.linspace(0,10,5)
print(e)
简单的加减运算 与 平方
f=np.array([10,20,30,40])
g=np.arange(4)
print(f,g)
h=f-g
print(h)
#平方 用**2
f=np.array([1,2,3,4])
print(f**2)
元素中的大小 这样简单粗暴的比较返回布尔值,这里会返回4个false
f=np.array([1,2,3,4])
print(f)
print(f>4)
NP的乘法 一种是矩阵中每个数相乘,一种就是矩阵的乘法!
m=np.array([[1,2,3],
[2,2,2]])
n=np.ones((2,3))
print(m*n)
o=np.ones((3,2))
print(m.dot(o)) #这是矩阵的乘法
生成一个随机矩阵 且生成的数值都是在0-1之间 求和,最值
g=np.random.random((3,2))
print(g)
print(np.max(g))
print(np.min(g))
print(np.sum(g))
print(np.max(g,axis=0)) #aixs表示维度,0是列,1是行 这表示列的最大值 故每一列,都会返回一个值
求最值索引以及平均值! 平均值为mean,arange表示2-14之间形成一个有12个元素的矩阵
p=np.arange(2,14).reshape(3,4)
print(p)
print(np.argmax(p))
print(np.argmin(p))
print(np.mean(p))
print(np.cumsum(p)) #表示累加,有点像fblg数列 ,第n个位置的值=前n个数的和
排序 转置 clip意思是,将矩阵中,所有小于3,大于9的数,都置为3或者9. 只保留中间的数
p=np.arange(13,1,-1).reshape(3,4)
print(p)
print(np.sort(p)) #只是进行每一行,行内的排序
print(p.T) #转置
print(np.clip(p,3,9))
print(np.mean(p,axis=0)) #表示每列的平均数
索引
a=np.arange(3,15).reshape((3,4))
print(a)
print(a[0]) #表示第0行
print(a[0,:]) #也可以用:来表示所有,这里就是表示,所有列
print(a[0,1:3]) #表示第0行,第1列,第2列的元素输出
for循环
a=np.arange(3,15).reshape((3,4))
print(a)
for each in a: #默认是行,故这里每一个each就是每一行的集合
print(each)
for each in a.T: #如果要输出列的话,就直接用转置就可以了!
print(each)
for each in a.flat: #每个元素,逐个输出
print(each)
矩阵合并!
a=np.array([1,1,1])
b=np.array([2,2,2])
print(np.vstack((a,b))) #vstack表示vertical stack 垂直
print(np.hstack((a,b))) #同理,这就是水平堆积
矩阵拆分!
a=np.arange(3,19).reshape(4,4)
print(a)
print(np.split(a,2,axis=0)) #按行来拆分 这里0表示行了
深浅拷贝 跟C语言
a=np.arange(1,5)
print(a)
b=a #浅拷贝,就是说,内存地址也一并拷贝过去了
print(b is a)
a[0]=8
print(b)
c=a.copy() #只拷贝值,不拷贝内存地址! 就是说,C有一块新的内存地址
a[0]=20
print(a)
print(c)
网友评论