python的列表,数组和矩阵

理论

python列表与numpy数组的区别

使用Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组。而numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器,存储效率和输入输出性能远优于Python中的嵌套列表。通常Numpy数组中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,因此在通用性能方面Numpy数组不及Python列表,但在科学计算中使用方面要比Python列表简单的多。

Numpy数组和矩阵的区别

  1. 矩阵必须是二维的,而数组可以是一维到任意维。
  2. 矩阵的主要优势是:相对简单的乘法运算符号
  3. 矩阵和数组都可以通过objects后面加.T得到其转置。但是矩阵还可以在后面加 .H得到共轭矩阵, 加.I得到逆矩阵
  4. 相反的是在numpy里面数组遵从逐个元素的运算,所以对于数组c 和d的c*d运算相当于matlab里面的c.*d运算。而矩阵相乘,则需要numpy里面的dot

示例

一维数组的输出

如下,对于一维数组的输出都是不同的

m_list=[1,2] # 结果为[1,2]
m_arr=np.array(m_list) # [1 2]
m_mat=np.mat(m_list) # [[1 2]],因为矩阵必须二维

二维数组的输出

m_list=[[1,2],[3,4]]
m_arr=np.array(m_list)
m_mat=np.mat(m_list)

结果为:

[[1, 2], [3, 4]]

[[1 2]
 [3 4]]
 
[[1 2]
 [3 4]]

其中数组和矩阵的数组在形式上是相同的,但是数组的维度会发生变化。

数组的维度会发生变化

做归约运算时,数组的维度会发生变化,比如平均运算:

m_list=[[1,2],[3,4]]
m_arr=np.array(m_list)
m_mat=np.mat(m_list)
print(m_arr.mean(1))
print(m_mat.mean(1))

结果如下:

[1.5 3.5]

[[1.5]
[3.5]]

同理,在获取某一行或某一列数据的时候也不一样:

m_list=[[1,2],[3,4]]
m_arr=np.array(m_list)
m_mat=np.mat(m_list)
print(m_arr[:,1]) #获取第二列元素
print(m_mat[:,1])

结果为:

[2 4]

[[2]
 [4]]
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值