Numpy的简单用法小结
Numpy的简单用法,下面就一起来了解一下
importnumpyasnp
一、创建ndarray对象
列表转换成ndarray:
>>>a=[1,2,3,4,5] >>>np.array(a) array([1,2,3,4,5])
取随机浮点数
>>>np.random.rand(3,4) array([[0.16215336,0.49847764,0.36217369,0.6678112], [0.66729648,0.86538771,0.32621889,0.07709784], [0.05460976,0.3446629,0.35589223,0.3716221]])
取随机整数
>>>np.random.randint(1,5,size=(3,4)) array([[2,3,1,2], [3,4,4,4], [4,4,4,3]])
取零
>>>np.zeros((3,4)) array([[0.,0.,0.,0.], [0.,0.,0.,0.], [0.,0.,0.,0.]])
取一
>>>np.ones((3,4)) array([[1.,1.,1.,1.], [1.,1.,1.,1.], [1.,1.,1.,1.]])
取空(最好别用,了解一下,版本不同返回值不一样)
>>>np.empty((3,4)) array([[1.,1.,1.,1.], [1.,1.,1.,1.], [1.,1.,1.,1.]])
取整数零或一
>>>np.ones((3,4),int) array([[1,1,1,1], [1,1,1,1], [1,1,1,1]]) >>>np.zeros((3,4),int) array([[0,0,0,0], [0,0,0,0], [0,0,0,0]])
仿range命令创建ndarray:
>>>np.arange(2,10,2)#开始,结束,步长 array([2,4,6,8])
二、ndarray属性的查看和操作:
看ndarray属性:
>>>a=[[1,2,3,4,5],[6,7,8,9,0]] >>>b=np.array(a) >>>b.ndim#维度个数(看几维) 2 >>>b.shape#维度大小(看具体长宽) (5,2) >>>b.dtype dtype('int32')
ndarray创建时指定属性:
>>>np.array([1,2,3,4,5],dtype=np.float64) array([1.,2.,3.,4.,5.]) >>>np.zeros((2,5),dtype=np.int32) array([[0,0,0,0,0], [0,0,0,0,0]])
属性强转:
>>>a=np.array([1,2,3,4,5],dtype=np.float64) >>>a array([1.,2.,3.,4.,5.]) >>>a.astype(np.int32) array([1,2,3,4,5])
三、简单操作:
批量运算:
>>>a=np.array([1,2,3,4,5],dtype=np.int32) >>>a array([1,2,3,4,5]) >>>a+a array([2,4,6,8,10]) >>>a*a array([1,4,9,16,25]) >>>a-2 array([-1,0,1,2,3]) >>>a/2 array([0.5,1.,1.5,2.,2.5]) #等等
改变维度:
>>>a=np.array([[1,2,3,4,5],[6,7,8,9,0]],dtype=np.int32) >>>a array([[1,2,3,4,5], [6,7,8,9,0]]) >>>a.reshape((5,2)) array([[1,2], [3,4], [5,6], [7,8], [9,0]])
矩阵转换(和改变维度有本质区别,仔细):
>>>a=np.array([[1,2,3,4,5],[6,7,8,9,0]],dtype=np.int32) >>>a array([[1,2,3,4,5], [6,7,8,9,0]]) >>>a.transpose() array([[1,6], [2,7], [3,8], [4,9], [5,0]])
打乱(只能打乱一维):
>>>a=np.array([[1,2],[3,4],[5,6],[7,8],[9,0]],dtype=np.int32) >>>a array([[1,2], [3,4], [5,6], [7,8], [9,0]]) >>>np.random.shuffle(a) >>>a array([[9,0], [1,2], [7,8], [5,6], [3,4]])
四、切片和索引:
一维数组(和普通列表一样):
>>>a=np.array(range(10)) >>>a array([0,1,2,3,4,5,6,7,8,9]) >>>a[3] 3 >>>a[2:9:2] array([2,4,6,8])
多维数组(也差不了多少):
>>>a=np.array([[1,2,3,4,5],[6,7,8,9,0],[11,12,13,14,15]],dtype=np.int32) >>>a array([[1,2,3,4,5], [6,7,8,9,0], [11,12,13,14,15]]) >>>a[:,1:4] array([[2,3,4], [7,8,9], [12,13,14]])
条件索引:
>>>a=np.array([[1,2,3,4,5],[6,7,8,9,0],[11,12,13,14,15]],dtype=np.int32) >>>a array([[1,2,3,4,5], [6,7,8,9,0], [11,12,13,14,15]]) >>>a>5 array([[False,False,False,False,False], [True,True,True,True,False], [True,True,True,True,True]],dtype=bool) >>>a[a>5] array([6,7,8,9,11,12,13,14,15]) >>>a%3==0 Out[128]: array([[False,False,True,False,False], [True,False,False,True,True], [False,True,False,False,True]],dtype=bool) >>>a[a%3==0] array([3,6,9,0,12,15])
五、函数(numpy核心知识点)
计算函数(都不想举例了,太简单。。):
np.ceil():向上最接近的整数,参数是number或array np.floor():向下最接近的整数,参数是number或array np.rint():四舍五入,参数是number或array np.isnan():判断元素是否为NaN(NotaNumber),参数是number或array np.multiply():元素相乘,参数是number或array np.divide():元素相除,参数是number或array np.abs():元素的绝对值,参数是number或array np.where(condition,x,y):三元运算符,xifconditionelsey >>>a=np.random.randn(3,4) >>>a array([[0.37091654,0.53809133,-0.99434523,-1.21496837], [0.00701986,1.65776152,0.41319601,0.41356973], [-0.32922342,1.07773886,-0.27273258,0.29474435]]) >>>np.ceil(a) array([[1.,1.,-0.,-1.], [1.,2.,1.,1.], [-0.,2.,-0.,1.]]) >>>np.where(a>0,10,0) array([[10,10,0,0], [10,10,10,10], [0,10,0,10]])
统计函数
np.mean():所有元素的平均值 np.sum():所有元素的和,参数是number或array np.max():所有元素的最大值 np.min():所有元素的最小值,参数是number或array np.std():所有元素的标准差 np.var():所有元素的方差,参数是number或array np.argmax():最大值的下标索引值, np.argmin():最小值的下标索引值,参数是number或array np.cumsum():返回一个一维数组,每个元素都是之前所有元素的累加和 np.cumprod():返回一个一维数组,每个元素都是之前所有元素的累乘积,参数是number或array >>>a=np.arange(12).reshape(3,4).transpose() >>>a array([[0,4,8], [1,5,9], [2,6,10], [3,7,11]]) >>>np.mean(a) 5.5 >>>np.sum(a) 66 >>>np.argmax(a) 11 >>>np.std(a) 3.4520525295346629 >>>np.cumsum(a) array([0,4,12,13,18,27,29,35,45,48,55,66],dtype=int32)
判断函数:
np.any():至少有一个元素满足指定条件,返回True np.all():所有的元素满足指定条件,返回True >>>a=np.random.randn(2,3) >>>a array([[-0.65750548,2.24801371,-0.26593284], [0.31447911,-1.0215645,-0.4984958]]) >>>np.any(a>0) True >>>np.all(a>0) False
去除重复:
np.unique():去重 >>>a=np.array([[1,2,3],[2,3,4]]) >>>a array([[1,2,3], [2,3,4]]) >>>np.unique(a) array([1,2,3,4])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。