array matrix 在使用flatten()和shape()时的一些区别

import numpy as np #导入numpy矩阵库
a = [[1,3],[2,4],[3,5]]
a = np.array(a)
b=np.matrix(a)
print(type(a))  #<class 'numpy.ndarray'>
print(type(b))  #<class 'numpy.matrix'>
print(a)
print(b)
'''
[[1 3]
 [2 4]
 [3 5]]
 
 [[1 3]
 [2 4]
 [3 5]]
'''
print(a.flatten()) #[1 3 2 4 3 5]
print(b.flatten())  #[[1 3 2 4 3 5]]
print(a.shape) #(3, 2)
print(b.shape) #(3, 2)
print(a.flatten().shape[0]) #6  注意由于是 数组 没有shape[1]
print(b.flatten().shape[0])#1
print(b.flatten().shape[1])#6

flatten只能适用于numpy对象,即array或者mat,普通的list列表不适用!。

a.flatten():a是个数组,a.flatten()就是把a降到一维,默认是按行的方向降 。

注意F和A

import numpy as np #导入numpy矩阵库
a = [[1,3],[2,4],[3,5]]
print(a.flatten('F')) #[1 3 2 4 3 5]  按行降维度
print(a.flatten('A')) #[1 3 2 4 3 5]  按列降维度


版权声明:本文为weixin_46421117原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。