Python numpy库中的array,list与矩阵的乘法,以及增添元素的方法
2017-05-21 13:44
1036 查看
Python作为一类弱类型语言。习惯了C/C++或者是Java等强类型语言的人在刚刚上手的时候可能会有些不习惯。在数据处理中,我们经常会用到numpy库中的数组,列表与矩阵等参数类型。而这些类型在调用某些方法的时候如果参数类型错误,往往会得不到想要的结果。
注意数组有另外一个array库,array库中数组的使用方法和numpy库中的数组有很大的不同。注意不要混淆。
一. array与矩阵的乘法
输入以下代码:
代码中定义了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()函数的输出结果,以及乘法的结果。
输出的结果如下:
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()函数。
在上面的代码下添加以下代码:
输出结果为:
[[1, 3], [1, 5], [2, 3]]
而numpy库中array和矩阵都没有append()函数。增加元素应该使用row_stack或者column_stack。
在上述代码中继续添加以下语句:
输出的结果如下:
b is [[1 3]
[1 5]
[2 3]]
c is [[1 3 2]
[1 5 3]]
numpy库有很多函数对数组,列表或矩阵进行运算时都会得到不一样的结果。以上只是其中几个例子。在程序出错的时候,可以通过debug窗口查看变量的类型,判断是否是由于类型不匹配而导致的错误结果。
注意数组有另外一个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窗口查看变量的类型,判断是否是由于类型不匹配而导致的错误结果。
相关文章推荐
- 关于用mapreduce做kmeans聚类以及python的numpy和list做矩阵、向量乘法的速度对比
- Python中列表list以及list与数组array的相互转换实现方法
- python中从str中提取元素到list以及将list转换为str的方法
- Python numpy.array() 生成相同元素数组的方法
- python中list(元组)删除元素的方法
- Python序列之list和tuple常用方法以及注意事项
- Python中的二维数组(list与numpy.array)
- numpy的array和python中自带的list之间相互转化
- Python numpy 矩阵特殊加、乘法与循环优化
- 【Python进阶】删除list里的重复元素的三种方法效率分析
- Python找出list中最常出现元素的方法
- 配置caffe的python环境时make pycaffe提示fatal error: numpy/arrayobject.h No such file or directory解决方法
- 合并多个python list以及合并多个 django QuerySet 的方法在用python或者django写一些小工具应用的时候,有可能会遇到合并多个list到一个 list 的情况。单纯从技
- 合并多个python list以及合并多个 django QuerySet 的方法
- Python找出list中最常出现元素的方法
- python list 增加元素的三种方法
- python实现矩阵乘法的方法
- python实现矩阵乘法的方法
- python中List添加元素的几种方法