numpy 的必须会的操作(三)

数组和矩阵的区别

矩阵matrix和数组array是NumPy里的两种数据类型。matrix是array的分支,matrix和array在很多时候都是通用的,你用哪一个都一样。Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的

创建方法 矩阵是mat 或matrix ,数组是array和arange

![import numpy as np
np.matrix(np.eye(4))
np.array(np.eye(4)]

在这里插入图片描述

数组和矩阵使用方法的区别

matrix.T transpose:返回矩阵的转置矩阵 (数组都有)
这是只有矩阵才有的
matrix.H hermitian (conjugate) transpose:返回复数矩阵的共轭元素矩阵
matrix.I inverse:返回矩阵的逆矩阵
matrix.A base array:返回矩阵基于的数组

#矩阵的换行必须是用分号(;)隔开,内部数据必须为字符串形式(‘ ’),矩阵的元素之间必须以空格隔开

a = np.matrix('1 2 7; 3 4 8; 5 6 9')  

例子

a = np.random.randn(3,4)
a.T
a.I
a = np.mat(a)
a.I
array([[ 0.52226072,  1.77935565, -0.76208424],
       [ 1.58157201, -1.18125853,  0.77364867],
       [ 1.19925864,  1.03371571,  1.11650254],
       [-0.31157359,  2.07659653, -0.3801554 ]])   #这是第一个a.T的结果
       
AttributeError: 'numpy.ndarray' object has no attribute 'I'  #a.I会报错,因为数组没有这个参数

matrix([[ 0.48687424,  0.06555841, -0.68032801],    #a = np.mat(a)将数组变成矩阵,所以这时a.i才有输出
        [ 0.47857106, -0.14676465, -0.23285881],
        [-0.04159389,  0.22476055,  0.63790475],
        [-0.12424659,  0.23001231,  0.13294199]])

连接和分割数组

a = np.arange(6).reshape(2,3)
b = np.arange(6,12) .reshape(2,3)  
a1 = np.concatenate([a,b])       #默认axis=0 相当于vstack
a2 = np.concatenate([a,b],axis=1)       #相当于hstack
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
      
array([[ 0,  1,  2,  6,  7,  8],
       [ 3,  4,  5,  9, 10, 11]]) 
a,b,c,d=np.split(a1,[ 1,2,3 ]  # 就是切片 )  默认axis=0     # ,以此类推
a,b,c = np.split(a2,[2,4],axis = 1) 

只打印第一个a

a = array([[0, 1, 2]])

a = array([[0, 1],
       [3, 4]])

重复元素 tile 和repeat

在这里插入图片描述
在这里插入图片描述

牛逼的take和put在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44510615/article/details/87914891