Python numpy库中的array,list与矩阵的乘法,以及增添元素的方法

Python作为一类弱类型语言。习惯了C/C++或者是Java等强类型语言的人在刚刚上手的时候可能会有些不习惯。在数据处理中,我们经常会用到numpy库中的数组,列表与矩阵等参数类型。而这些类型在调用某些方法的时候如果参数类型错误,往往会得不到想要的结果。

注意数组有另外一个array库,array库中数组的使用方法和numpy库中的数组有很大的不同。注意不要混淆。

一. array与矩阵的乘法

输入以下代码:

from numpy import *
a=[[1,3],[1,5]]
b=mat(a)
c=array(a)
print('a is', a)
print('b is', b)
print('c is', c)

代码中定义了a属于list(列表),b调用了numpy中的mat()函数,将list转换为了矩阵。而c调用了numpy中的array()函数,将list转换为了array(数组)。

运行代码,结果如下:

a is [[1, 3], [1, 5]]
b is [[1 3]
[1 5]]
c is [[1 3]
[1 5]]
从输出的结果中无法直接分辨出b和c的差异。在上面的代码后面继续输入,测试numpy.shape()函数的输出结果,以及乘法的结果。

print('a的shape是', shape(a))
print('b的shape是', shape(b))
print('c的shape是', shape(c))
#print('a*a的结果是',a*a)   #该语句会报错
print('b*b的结果是',b*b)
print('c*c的结果是',c*c)

输出的结果如下:

a的shape是 (2, 2)
b的shape是 (2, 2)
c的shape是 (2, 2)
b*b的结果是 [[ 4 18]
[ 6 28]]
c*c的结果是 [[ 1 9]
[ 1 25]]

从结果中可以看到shape()函数作用在列表,数组以及矩阵上都可以返回相应的维度值。
而乘法则有很大的区别。矩阵的乘法是和通常的矩阵乘法定义一致。数组的乘法是数组的各个元素对应直接相乘。列表则无法进行乘法运算。

二. 增加元素

对于list来说,增加元素可以用append()函数。
在上面的代码下添加以下代码:

e=[2,3]
a.append(e)
print(a)

输出结果为:
[[1, 3], [1, 5], [2, 3]]

而numpy库中array和矩阵都没有append()函数。增加元素应该使用row_stack或者column_stack。
在上述代码中继续添加以下语句:

b=row_stack((b,e))
c=column_stack((c,e))
print("b is",b)
print("c is",c)

输出的结果如下:
b is [[1 3]
[1 5]
[2 3]]
c is [[1 3 2]
[1 5 3]]

numpy库有很多函数对数组,列表或矩阵进行运算时都会得到不一样的结果。以上只是其中几个例子。在程序出错的时候,可以通过debug窗口查看变量的类型,判断是否是由于类型不匹配而导致的错误结果。
这里写图片描述

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏作者

Lunar112

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值