Python 的数组矩阵

在Python中,数组和矩阵是通过Numpy库实现的,不同于Matlab的直接创建。Numpy的ndarray和mat对象分别对应数组和矩阵。len()函数用于获取长度,size()和shape()则用于获取数组和矩阵的尺寸信息。reshape函数在Python和Matlab中都用于改变数组或矩阵的形状,Python支持负数作为参数进行自动计算,Matlab则是按照列取数据。
摘要由CSDN通过智能技术生成

总的来说,就是不能像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 列矩阵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值