python list,numpy模块array与mat的区别

list 、numpy.array、mat的区别
  1. 元素类型
  • 首先是元素存储的区别,list里面可以存储不同的元素类型,但是array和mat必须是同一类型的元素,arrayA与mat自动将不同类型的元素进行转换成同一类型的元素。
  • 然后是展现的形式,array是数组类型,而mat是矩阵的形式
import numpy as np
listA = [1,2,'3']
matA = np.mat(listA)  
arrayA = np.array(listA)
print(matA,end = ' ,this is matA')
print()
print(arrayA,end = ' ,this is arrayA')

>> [['1' '2' '3']] ,this is matA
>> ['1' '2' '3'] ,this is arrayA

  1. 引用形式不一样
  • array一直是作为一个数组形式的存在,所以引用出来也是数组中的元素
  • mat 引用也是作为矩阵的形式
import numpy as np
listA = [1,2,3,4]
listB = [[1,2],[3,4]]
matA = np.mat(listA)
arrayA = np.array(listA)
matB = np.mat(listB)
arrayB = np.array(listB)
print(matB,end=' ,this is matB')
print()
print(matB[1],end=' ,part of matB')
print()
print(arrayB[1],end=' ,part of arrayB')


>> [[1 2]
   [3 4]] ,this is matB
   [[3 4]] ,part of matB
   [3 4] ,part of arrayB

  1. 运算
  • 加法
    list可以看成一个整体进行运算,例如加法可以看成’链接’运算
listA = [1,2,3,4]
listB = [4,3,2,1]
print(listA + listB)

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

array与mat可以看作对元素的操作

import numpy as np
listA = [1,2,3,4]
listB = [4,3,2,1]
matA = np.mat(listA)
matB = np.mat(listB)
arrayA = np.array(listA)
arrayB = np.array(listB)
print(matA + matB,end=' ,this is matrix addition')
print()
print(arrayA + arrayB,end=' ,this is array addition')

>> [[5 5 5 5]] ,this is matrix addition
   [5 5 5 5] ,this is array addition
  • 乘法
    list的乘法:
  1. 与单个元素相乘,相当于list的拼接
listA = [1,2,3]
print(listA*3)

>> [1, 2, 3, 1, 2, 3, 1, 2, 3]
  1. list与list的乘法,error

array的乘法:

import numpy as np
listA = [1,2,3,4]
arrayA = np.array(listA)
print(arrayA*3)

>> [ 3  6  9 12]

mat的乘法:

import numpy as np
listA = [1,2,3,4]
matA = np.mat(listA)
matB = np.transpose(matA)

print(matA*matB)

>> [[30]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

live_for_myself

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值