Numpy使用

Numpy使用

import numpy as np

生成numpy数组

#生成长度为5的从0-4的数组
np.arange(5) 

#生成为4行5列的0-19的数组
np.arnage(20).reshape((4,5)) 

#生成参数的数组
np.array([[1,2],[3,4]]) 

#生成3行4列的全0
print(np.zeros((3,4)))  

#生成3行4列的全1
print(np.ones((3,4)))   

#生成3行3列的对角线为1
print(np.eye((3)))     
#生成2行3列的数组 (0-1)
print(np.random.rand(2,3)) 

#生成2行3列的数组 符合标准正太分布
print(np.random.randn(2,3)) 

#生成(0-100)的10行10列的数组
print(np.random.randint(0,100,(10,10))) 

#使用随机种子,每次生成的数组都一样
np.random.seed(10)
print(np.random.randint(0,100,(3,2)))  

数组shape

a=np.arnage(20).reshape((4,5))
#查看数组的shape
print(a.shape)

#更新数组的shape
a.reshape((5,4))

#将数组打散,转换为一行
a.flatten()

数组的运算

数组对应位置进行运算

a=np.arange(20).reshape((4,5))

print(a+2)
print(a-12)
print(a*2)
print(a/0)

numpy数据类型

#生成数据类型为float
a=np.array([random.random() for i in range(10)],dtype="float")

#数组元素保留两位小数
print(np.round(a,2))

#将数组类型转化为int
b=a.astype(int)

保留两位小数

numpy存取本地文件

读取:

#delimiter默认是" ",skiprows是跳过的行,默认为1
a=np.loadtxt("data.csv",delimiter=",",dtype="float",skiprows=0)

存储:

#delimiter默认是' ',fmt是保存数据格式
np.savetxt("data2.csv",b,fmt="%1.4e")
np.savetxt("data2.csv",b,fmt="%.f")

其中%.f可以谢伟·%10.10f意思为整数部分10位,小数部分10位

numpy的数据转置

a=np.arange(20).reshape(4,5)
b=a.transpose()
print(b)
print(a.T)
#交换0,1轴
print(a.swapaxes(1,0))

numpy的索引和切片

取一行

a=np.arange(20).reshape(4,5)
print(a[0])

取一列

a=np.arange(20).reshape(4,5)
print(a[:,0)

取多行

a=np.arange(20).reshape(4,5)
print(a[1:3])

取多列

a=np.arange(20).reshape(4,5)
print(a[:,1:3])

取不连续的多行

a=np.arange(20).reshape(4,5)
print(a[[0,2]])

取不连续的多列

a=np.arange(20).reshape(4,5)python
print(a[:,[0,2]])

取第1行,第2列的值

a=np.arange(20).reshape(4,5)
print(a[1,2])

取多行和多列(取交叉点),取第1行到第3行,第1列到第4列的结果

a=np.arange(20).reshape(4,5)
print(a[0:3,1:4])

取多个不相临的点

a=np.arange(20).reshape(4,5)
print(a[[0,2],[0,1]])

取的是列表对应位置的点(0,0)(2,1)

numpy中数值的修改

a=np.arange(20).reshape(4,5)
a[[0,2],[0,1]]=0
print(a)

取a中小于5的值

a=np.arange(20).reshape(4,5)
print(a[a<5])

将a中小于5的赋值为3

a=np.arange(20).reshape(4,5)
a[a<5]=3
print(a)

将a中小于3的数字替换为0,把大于3的替换为6(三目运算符)

a=np.arange(20).reshape(4,5)
print(np.where(a<3,0,6))

将a中小于3的数字替换为3,把大于6的替换为6

a=np.arange(20).reshape(4,5)
print(a.clip(3,6))

numpy的数组拼接

竖直拼接时候:每一列代表的意义相同,否则牛头不对马嘴

a=np.array([[1,2],[3,4]])
b=np.array([[5,6],[7,8]])

# 竖直拼接 vertically
c=np.vstack((a,b))

# 水平拼接 horizontally
d=np.hstack((a,b))

print(c)
print(d)

行交换

t[[1,2],:]=t[[2,1],:]

列交换

t[:,[1,2]]=t[:,[2,1]]
a=np.arange(20).reshape((4,5))
b=np.arange(20,40).reshape(4,5)

print(a+b)
print(a-b)
print(a*b)
print(a/b)

numpy的常见方法

print(np.max(a))		#全局最大
print(np.max(a,axis=0))	#每列最大
print(np.max(a,axis=1))	#每行最大
print(np.argmax(t,axis=0))   #每列最大的坐标
print(np.argmax(t,axis=1))   #每行最大的坐标

numpy的复制操作

numpy的nan和inf

numpy中常用的统计函数

numpy中将nan赋值为平均值操作

posted @ 2020-07-10 14:01  胖墩哥  阅读(268)  评论(0编辑  收藏  举报