list:列表
array:数组
ndarray:n维的array
matrix:矩阵
为什么要使用NumPy?
Python中的列表是存储的地址,NumPy数组比Python列表更快,更紧凑。数组消耗较少的内存,使用起来很方便。NumPy使用更少的内存来存储数据,并且提供了一种指定数据类型的机制。这使得代码可以进一步优化。
相同点:
1、列表和数组在Python中用于存储数据(任何数据类型的字符串,整数等),也可以对它们进行索引和迭代。
2、都具有多维的形式:列表可嵌套成多维的,数组可以指定大小或嵌套成多维的
3、列表和数组都可使用len()
不同点:
1、列表可包含不同的数据类型,数组必须包含包含相同的数据类型
2、列表可以使用shape(),但无法使用list.shape,数组和可以使用
3、四则运算如下:
# array 四则运算 # a=np.array([4,8,20,16]) a1=a/4 a2=a*2 a3=a+4 a4=a-4 print("除法结果:",a1) print('乘法结果:',a2) print('加法结果:',a3) print('减法结果:',a4) # 结果:逐元素运算 # 除法结果: [1. 2. 5. 4.] # 乘法结果: [ 8 16 40 32] # 加法结果: [ 8 12 24 20] # 减法结果: [ 0 4 16 12] # list 四则运算 # b=[4,8,20,16] #b1=b/4 b2=b*2 #b3=b+4 #b4=b-4 #print("除法结果:",b1) print('乘法结果:',b2) #print('加法结果:',b3) #print('减法结果:',b4) # 结果: # 除法结果:报错 # 乘法结果:[4, 8, 20, 16, 4, 8, 20, 16] # 加法结果:报错 # 减法结果:报错# `Python`列表和`NumPy`数组有什么区别?首先要知道的是矩阵是数组的子类,继承了数组所有的属性和方法,并且矩阵只能是二维的,数组可以是多维的。矩阵和数组主要的差别就体现在运算上。
其次根据官方建议,矩阵的类可能会被删除,现在我们可以使用数组实现所有的操作,数组乘除的运算也有了相应的简单命令。
主要区别总结:
1、矩阵是严格2维的,而数组(ndarrays)是N维的。
2、生成方式不同:矩阵可以从字符串或列表中生成;数组只能从列表中生成
import numpy as np a1 = np.mat([[1,2],[3,4]]) a2 = np.mat('1,2;3,4') print(a1) # [[1 2] # [3 4]] print('\n a2= \n',a2) # [[1 2] # [3 4]]3、数组的主要优点是它们比二维矩阵更通用。许多NumPy函数返回数组,而不是矩阵。
4、在逐元素运算和线性代数运算之间有明显的区别。
NumPy矩阵的主要优点是它们为矩阵乘法提供了一种方便的表示法:如果a和b是矩阵,则a*b它们是矩阵乘积。相反,NumPy数组始终遵守逐元素的操作规则(除了新增加的@运算符)。因此,如果a和b是NumPy数组,则a*b该数组是通过逐个元素相乘而形成的。要获得和矩阵乘法相同的结果,要使用np.dot()或者@ (Python 3.5版本以上)
import numpy as np # 矩阵 # a = np.mat('4 3; 2 1') b = np.mat('1 2; 3 4') print(a) # [[4 3] # [2 1]] print(b) # [[1 2] # [3 4]] print(a*b) # [[13 20] # [ 5 8]] # 数组 # c = np.array([[4, 3], [2, 1]]) d = np.array([[1, 2], [3, 4]]) print(c*d) # [[4 6] # [6 4]] print(np.dot(c,d)) # [[13 20] # [ 5 8]] print(c@d) # [[13 20] # [ 5 8]]5、转置、求逆
矩阵和数组都可以通过.T方法得到其转置。但是矩阵还可以通过 .H和.I分别得到共轭矩阵和逆矩阵。
6、索引不同:矩阵的a[0]和a[0][0]返回相同的结果
a = np.mat('4 3; 2 1') c = np.array([[1, 2], [3, 4]]) print(a) # [[4 3] # [2 1]] print(a[0]) # [[4 3]] print(a[0][0]) #[[4 3]] print(c) # [[1 2] # [3 4]] print(c[0]) # [1 2] print(c[0][0]) # 17、更加详细的区别参考:NumPy for Matlab users
1.NumPy: the absolute basics for beginners
2.What are the differences between numpy arrays and matrices? Which one should I use? 3.https://blog.csdn.net/yeler082/article/details/90342438
4.https://blog.csdn.net/xiaobaicai4552/article/details/79413325