python开发笔记-ndarray方法属性详解

Python中的数组ndarray是什么?

1、NumPy中基本的数据结构

2、所有元素是同一种类型

3、别名是array

4、利于节省内存和提高CPU计算时间

5、有丰富的函数

ndarray的创建:

import numpy as np  
>>> aArray=np.array([1,2,3])  
>>> aArray  
array([1, 2, 3])  
>>> bArray=np.array([(1,2,3),(4,5,6)])  
>>> bArray  
array([[1, 2, 3],  
       [4, 5, 6]])  
>>> np.arange(1,5,0.5)  
array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])  
>>> np.random.random((2,2))  
array([[0.15637741, 0.23650666],  
       [0.37523649, 0.4608882 ]])  
>>> np.linspace(1,2,10,endpoint=False)  
array([1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])  

  

np.ones([2,3])  
array([[1., 1., 1.],  
       [1., 1., 1.]])  
>>> np.zeros((2,2))  
array([[0., 0.],  
       [0., 0.]])  
>>> np.fromfunction(lambda i,j:(i+1)*(j+1),(9,9))  
array([[ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.],  
       [ 2.,  4.,  6.,  8., 10., 12., 14., 16., 18.],  
       [ 3.,  6.,  9., 12., 15., 18., 21., 24., 27.],  
       [ 4.,  8., 12., 16., 20., 24., 28., 32., 36.],  
       [ 5., 10., 15., 20., 25., 30., 35., 40., 45.],  
       [ 6., 12., 18., 24., 30., 36., 42., 48., 54.],  
       [ 7., 14., 21., 28., 35., 42., 49., 56., 63.],  
       [ 8., 16., 24., 32., 40., 48., 56., 64., 72.],  
       [ 9., 18., 27., 36., 45., 54., 63., 72., 81.]])  

  

import numpy as np  
>>> x = np.array([(1,2,3),(4,5,6)])  
>>> x  
array([[1, 2, 3],  
       [4, 5, 6]])  
>>> x.ndim  
2  
>>> x.shape  
(2, 3)  
>>> x.size  
6  

  

import numpy as np  
>>> aArray=np.array([(1,2,3),(4,5,6)])  
>>> print(aArray[1])  
[4 5 6]  
>>> print(aArray[0])  
[1 2 3]  
>>> print(aArray[0:2])  
[[1 2 3]  
 [4 5 6]]  
>>> print(aArray[:,[0,1]])  
[[1 2]  
 [4 5]]  
>>> print(aArray[1,[0,1]])  
[4 5]  
>>> for row in aArray:  
    print(row)  
  
      
[1 2 3]  
[4 5 6]  

  ndarray的操作:

import numpy as np  
>>> aArray=np.array([(1,2,3),(4,5,6)])  
>>> aArray.shape  
(2, 3)  
>>> bArray=aArray.reshape(3,2)  
>>> bArray  
array([[1, 2],  
       [3, 4],  
       [5, 6]])  
>>> aArray  
array([[1, 2, 3],  
       [4, 5, 6]])  

  

import numpy as np  
>>> aArray=np.array([(1,2,3),(4,5,6)])  
>>> aArray.resize(3,2)  
>>> aArray  
array([[1, 2],  
       [3, 4],  
       [5, 6]])  
>>> bArray=np.array([1,3,7])  
>>> cArray=np.array([3,5,8])  
>>> np.vstack((bArray,cArray))  
array([[1, 3, 7],  
       [3, 5, 8]])  
>>> np.hstack((bArray,cArray))  
array([1, 3, 7, 3, 5, 8])  

  ndarray的运算:

import numpy as np  
>>> aArray=np.array([(5,5,5),(5,5,5)])  
>>> bArray=np.array([(2,2,2),(2,2,2)])  
>>> cArray=aArray*bArray  
>>> cArray  
array([[10, 10, 10],  
       [10, 10, 10]])  
>>> aArray+=bArray  
>>> aArray  
array([[7, 7, 7],  
       [7, 7, 7]])  

  广播的思想:

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

  统计运算:

import numpy as np  
>>> aArray=np.array([(1,2,3),(4,5,6)])  
>>> aArray.sum()  
21  
>>> aArray.sum(axis=0)  
array([5, 7, 9])  
>>> aArray.sum(axis=1)  
array([ 6, 15])  
>>> aArray.min()  
1  
>>> aArray.argmax()  
5  
>>> aArray.mean()  
3.5  
>>> aArray.var()  
2.9166666666666665  
>>> aArray.std()  
1.707825127659933  

  ndarray的专门应用--线性代数:

>>> import numpy as np  
>>> x=np.array([[1,2],[3,4]])  
>>> r1=np.linalg.det(x)  
>>> print(r1)  
-2.0000000000000004  
>>> r1  
-2.0000000000000004  
>>> r2=np.linalg.inv(x)  
>>> r2  
array([[-2. ,  1. ],  
       [ 1.5, -0.5]])  
>>> print(r2)  
[[-2.   1. ]  
 [ 1.5 -0.5]]  
>>> r3=np.dot(x,x)  
>>> r3  
array([[ 7, 10],  
       [15, 22]])  
>>> print(r3)  
[[ 7 10]  
 [15 22]]