numpy用法

 

numpy实例

1、数组

import numpy as np

q1=[1,2,3]   q2=[2,3,4]

array1=np.array([q1,q2])    #生成二维数组

array1.shape           #数组维度,输出 (2, 3)

array1.size             #元素个数,输出 6

array1.dtype           #数组类型,输出  dtype('int32')

np.zeros(5)           #输出全0数组  array([ 0.,  0.,  0.,  0.,  0.])

np.zeros([2,3])         输出 array([[ 0.,  0.,  0.], [ 0.,  0.,  0.]])

np.eye(4)   #单位矩阵,输出 array([[ 1.,  0.,  0.,  0.],

                                                              [ 0.,  1.,  0.,  0.],

                                                              [ 0.,  0.,  1.,  0.],

                                                              [ 0.,  0.,  0.,  1.]])

np.arange(1,10)             输出  array([1, 2, 3, 4, 5, 6, 7, 8, 9])

 

np.random.randn(10)   生成随机数组

输出 rray([-1.082794  ,  0.9338296 ,  2.31105355,  0.38085937, -0.07724744,-0.13239828, -0.40933282,  2.28515491, -0.32226857,  0.39435417])

np.random.randint(10,size=[2,3])     生成随机二维数组

输出 array([[2, 4, 5],[4, 6, 0]])

np.random.randint(10,size=20).reshape(4,5) #生成随机数*4乘5的数组

输出 array([[7, 8, 6, 7, 7],[2, 7, 0, 5, 9],[5, 8, 0, 2, 8],[8, 9, 4, 5, 1]])

 

(2)运算

a=array([[7, 8, 6, 7, 7],[2, 7, 0, 5, 9],[5, 8, 0, 2, 8],[8, 9, 4, 5, 1]])

sum(a)       求总列的和

sum(a[0])    求第0行的和

sum(a[:0])   求第0列的和

a.max()      求最大值

 

2、矩阵

import numpy as np

np.mat([[1,2,3],[1,2,3]])       输出  matrix([[1, 2, 3],[1, 2, 3]])

 

 

 

 

行转列

t=np.array([1,2,0])

t[:,np.newaxis]

 

拼接数组使用:np.concatenate、np.vstack、np.hstack

1、np.concatenate 横向拼接

In[43]: x = np.array([1, 2, 3])

y = np.array([3, 2, 1])

np.concatenate([x, y])

Out[43]: array([1, 2, 3, 3, 2, 1])

 

 

2、沿着固定维度处理数组时,使用 np.vstack(垂直栈)和np.hstack(水平栈)

In[48]: x = np.array([1, 2, 3])

grid = np.array([[9, 8, 7],[6, 5, 4]])

# 垂直栈数组

np.vstack([x, grid])

Out[48]: array([[1, 2, 3],[9, 8, 7],[6, 5, 4]])

In[49]: # 水平栈数组

y = np.array([[99],[99]])

np.hstack([grid, y])

Out[49]: array([[ 9, 8, 7, 99],[ 6, 5, 4, 99]])

 

 

 

拆分数组:np.split、np.hsplit、np.vsplit

1、np.split:横向拆分

In[50]: x = [1, 2, 3, 99, 99, 3, 2, 1]

x1, x2, x3 = np.split(x, [3, 5])   #通过传入索引位置实现拆分

print(x1, x2, x3)

[1 2 3] [99 99] [3 2 1]

2、np.hsplit 和 np.vsplit 的用法也类似:

 

numpy用法

 

np.sort(x)  排序

np.argsort(x) 返回排序的索引

np.partition(x, 3)   第三小的元素,放在最左边

np.argpartition