python中利用函数getA(),flatten()让(1,n)大小的矩阵,变成(n,)大小的数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25964837/article/details/79029021
代码:

import numpy as np

zhen1=np.array([1,2,3,4])
print('zhen1:',zhen1,'shape:',zhen1.shape,'type:',type(zhen1))

zhen2=np.matrix([1,2,3,4])
print('zhen2:',zhen2,'shape:',zhen2.shape,'type:',type(zhen2))

zhen3=np.matrix([[1,2,3,4]])
print('zhen3:',zhen3,'shape:',zhen3.shape,'type:',type(zhen3))


####如何把矩阵的一维去掉,变成一维数组

#方法一:
# step1:显然已经把zhen2矩阵,变为了zhen2数组类型,大小为(1,4)
print('\n\n\n')
z1=zhen2.getA()#从矩阵类型变为数组类型
print('z1:',z1,'shape:',z1.shape,'type:',type(z1))
#step2:中括号里面的中括号已经不再了。
z2=z1.flatten()
print('z2:',z2,'shape:',z2.shape,'type:',type(z2))

#方法二:

#直接展开矩阵zhen2并没有变化,展开后的还是一个矩阵,简单地说明矩阵必须是二维的。注意此时的z3矩阵,z4是数组了
z3=zhen2.flatten()
print('z3:',z3,'shape:',z3.shape,'type:',type(z3))

#利用A,可以取出元素重组成数组,也可去掉一维
z4=zhen2.flatten().A[0]
print('z4:',z4,'shape:',z4.shape,'type:',type(z4))





#矩阵情况:矩阵必须是二维的
#发现直接将某一维1的矩阵直接fatten,发现并没有什么改变。


输出结果:
E:\phthon35\python.exe I:/catsVSdogs1-master/catsVSdogs1-master/file01/test14.py
zhen1: [1 2 3 4] shape: (4,) type: <class 'numpy.ndarray'>
zhen2: [[1 2 3 4]] shape: (1, 4) type: <class 'numpy.matrixlib.defmatrix.matrix'>
zhen3: [[1 2 3 4]] shape: (1, 4) type: <class 'numpy.matrixlib.defmatrix.matrix'>




z1: [[1 2 3 4]] shape: (1, 4) type: <class 'numpy.ndarray'>
z2: [1 2 3 4] shape: (4,) type: <class 'numpy.ndarray'>
z3: [[1 2 3 4]] shape: (1, 4) type: <class 'numpy.matrixlib.defmatrix.matrix'>
z4: [1 2 3 4] shape: (4,) type: <class 'numpy.ndarray'>

Process finished with exit code 0


没有更多推荐了,返回首页