python numpy的简单用法汇总

Numpy的简单用法

import numpy as np

一、创建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])

相关推荐:《Python视频教程》

二、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.dtypedtype('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)>>> aarray([ 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)>>> aarray([1, 2, 3, 4, 5])>>> a + aarray([ 2,  4,  6,  8, 10])>>> a * aarray([ 1,  4,  9, 16, 25])>>> a - 2array([-1,  0,  1,  2,  3])>>> a / 2array([ 0.5,  1. ,  1.5,  2. ,  2.5])#等等

改变维度:

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,0]],dtype=np.int32)>>> aarray([[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)>>> aarray([[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)>>> aarray([[1, 2],       [3, 4],       [5, 6],       [7, 8],       [9, 0]])       >>> np.random.shuffle(a)>>> aarray([[9, 0],       [1, 2],       [7, 8],       [5, 6],       [3, 4]])

四、切片和索引:

一维数组:

>>> a = np.array(range(10))>>> aarray([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)>>> aarray([[ 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)>>> aarray([[ 1,  2,  3,  4,  5],       [ 6,  7,  8,  9,  0],       [11, 12, 13, 14, 15]])       >>> a > 5array([[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 == 0Out[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 或 arraynp.floor(): 向下最接近的整数,参数是 number 或 arraynp.rint(): 四舍五入,参数是 number 或 arraynp.isnan(): 判断元素是否为 NaN(Not a Number),参数是 number 或 arraynp.multiply(): 元素相乘,参数是 number 或 arraynp.divide(): 元素相除,参数是 number 或 arraynp.abs():元素的绝对值,参数是 number 或 arraynp.where(condition, x, y): 三元运算符,x if condition else y>>> a = np.random.randn(3,4)>>> aarray([[ 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 或 arraynp.max():所有元素的最大值np.min():所有元素的最小值,参数是 number 或 arraynp.std():所有元素的标准差np.var():所有元素的方差,参数是 number 或 arraynp.argmax():最大值的下标索引值,np.argmin():最小值的下标索引值,参数是 number 或 arraynp.cumsum():返回一个一维数组,每个元素都是之前所有元素的累加和np.cumprod():返回一个一维数组,每个元素都是之前所有元素的累乘积,参数是 number 或 array>>> a = np.arange(12).reshape(3,4).transpose()>>> aarray([[ 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(): 至少有一个元素满足指定条件,返回Truenp.all(): 所有的元素满足指定条件,返回True>>> a = np.random.randn(2,3)>>> aarray([[-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]])>>> aarray([[1, 2, 3],       [2, 3, 4]])>>> np.unique(a)array([1, 2, 3, 4])

以上就是python numpy的简单用法汇总的详细内容,更多请关注其它相关文章!

莫找借口失败,只找理由成功。(不为失败找理由,要为成功找方法

python numpy的简单用法汇总

相关文章:

你感兴趣的文章:

标签云: