总的来说,就是不能像matlab那样直接创建数组(一维矩阵、向量):[1,2],这样的结果是列表。
1.数组是Python扩展库Numpy中的一种数据结构ndarray;矩阵是同样是Python扩展库Numpy中的一种数据结构mat;列表可以存储数组和矩阵。
2.同时我们常常需要查看列表、数组和矩阵的属性,如size、shape、len
其中len():返回对象的长度,可以作用于列表、数组和矩阵:len(list([1,2,3]))
size()和shape()是Numpy扩展库中才用的函数:
size():计算所有数据的个数,同样可以作用于列表、数组和矩阵:np.size(np.array([1,2,3])),Matlab里是numel
shape():得到数据每维的大小,同样可以作用于列表、数组和矩阵:np.shape(np.array([1,2,3])),Matlab里是size
不同于len,shape和size还可以作为数组和矩阵的属性(列表不行),使用方法如下:a.shape、a.size
更详细的可以参考:
(60条消息) Python3中的列表、数组和矩阵及*、np.dot和np.multiply解析_等等登登-Ande的博客-CSDN博客
(60条消息) Python 与 Matlab 矩阵操作对应表_SongpingWang的博客-CSDN博客
(60条消息) matlab和python运算对比_hi_cwy的博客-CSDN博客
(60条消息) python的列表,数组和矩阵_py中列表和矩阵的存储方式_johnjim0816的博客-CSDN博客
(60条消息) python数组和矩阵用法_wxyld的博客-CSDN博客
3.记录下matlab中的reshape函数和python中的reshape函数
首先是python中的reshape
例子1:很正常的reshape,reshape还可以多维,不止二维
>>> c=np.array([[2,3,4],[5,6,7]])
>>> c
array([[2, 3, 4],
[5, 6, 7]])
>>> c=c.reshape(3,2)
>>> c
array([[2, 3],
[4, 5],
[6, 7]])
例子2:>>> import numpy as np
>>> import pandas as pd
>>> c=np.array([[2,3,4],[5,6,7]])
>>> c=c.reshape(2,-2) ##这里的-2是模糊控制,这里的负数是模糊控制,负数可以为任何数。比如reshape(2,-1)
,固定两行,多少列系统根据元素数量自动计算好;同理,reshape(-2,2)
: 固定两列,行数自动计算好。
>>> c
array([[2, 3, 4],
[5, 6, 7]])当然还可以这样调用:第二种:np.reshape(a, 矩阵维度数,矩阵行数,矩阵列数)
另外!!关于python的这个函数如何取数排列:
y=a.reshape(3,2,order='C')#C按行取数按行放数
y=a.reshape(3,2,order='F')#F按列取数按列放数
matlab reshape() 函数
语法是 A = reshape(A,m,n); 或者 A = reshape(A,[m,n]); 都是将A 的行列排列成m行n列。reshape是 按照列取数据的
另外类似python的-1模糊功能有:只用[]来自动计算
例子:
为第一个维度指定
[]
以使reshape
自动计算合适的行数。A = magic(4) B = reshape(A,[],2)%将一个 4×4 方阵重构为一个 2 列矩阵