Numpy是Python的一种开源的数值计算扩展,是一些针对矩阵进行运算的模块。
1.参考文章
1.Numpy介绍
2.Numpy 学习笔记
3.python中的list和array的不同之处
4.Python列表、Numpy数组与矩阵的区别
2.知识点
1.Python中的list和np.array的不同之处
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。使用Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组,那么为什么还需要使用Numpy呢?Numpy是专门针对数组的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。通常Numpy数组中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以在通用性能方面Numpy数组不及Python列表,但在科学计算中,可以省掉很多循环语句,代
码使用方面比Python列表简单的多。
2.Numpy数组和矩阵的区别:
- Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
- 在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。
- matrix 和 array 都可以通过objects后面加.T 得到其转置。但是 matrix objects 还可以在后面加 .H f得到共轭矩阵, 加 .I 得到逆矩阵。
- 相反的是在numpy里面arrays遵从逐个元素的运算,所以array:c 和d的c*d运算相当于matlab里面的c.*d运算。而矩阵相乘,则需要numpy里面的dot命令 。
3.一些keypoint
1.list列表中list不能直接和数字相加,但是np.array中可以
a = [1,2,3]
b = 3*a+2
print(b)
# 其结果会报错,list不能和int直接相加
np.array中如下就是对的:
import numpy as np
a = np.array([1,2,3])
b = 3*a+2
print(b)
# 输出结果是:[ 5 8 11]
2.Python的zip函数
参考:Python的zip函数