MATLAB和Python都是解释性语言,如何将代码从MATLAB转换为Python呢,这就需要numpy了。
NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。
下面对numpy中的操作进行总结。
numpy包含两种基本的数据类型:数组和矩阵。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
>>> from numpy import * >>> a1=array([1,1,1]) #定义一个数组 >>> a2=array([2,2,2]) >>> a1+a2 #对于元素相加 array([3, 3, 3]) >>> a1*2 #乘一个数 array([2, 2, 2]) ## >>> a1=array([1,2,3]) >>> a1 array([1, 2, 3]) >>> a1**3 #表示对数组中的每个数做平方 array([ 1, 8, 27]) ##取值,注意的是它是以0为开始坐标,不matlab不同 >>> a1[1] 2 ##定义多维数组 >>> a3=array([[1,2,3],[4,5,6]]) >>> a3 array([[1, 2, 3], [4, 5, 6]]) >>> a3[0] #取出第一行的数据 array([1, 2, 3]) >>> a3[0,0] #第一行第一个数据 1 >>> a3[0][0] #也可用这种方式 1 ##数组点乘,相当于matlab点乘操作 >>> a1=array([1,2,3]) >>> a2=array([4,5,6]) >>> a1*a2 array([ 4, 10, 18]) |
数组创建:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import numpy as np a = np.zeros((2,2)) # Create an array of all zeros print a # Prints "[[ 0. 0.] # [ 0. 0.]]" b = np.ones((1,2)) # Create an array of all ones print b # Prints "[[ 1. 1.]]" c = np.full((2,2), 7) # Create a constant array print c # Prints "[[ 7. 7.] # [ 7. 7.]]" d = np.eye(2) # Create a 2x2 identity matrix print d # Prints "[[ 1. 0.] # [ 0. 1.]]" e = np.random.random((2,2)) # Create an array filled with random values print e # Might print "[[ 0.91940167 0.08143941] # [ 0.68744134 0.87236687]]" |
数组对象的属性:
数组对象的方法: