|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uqHZau 于 2020-11-12 15:44 编辑 ; _" [5 w' U: K
5 l# S5 e' i- O$ O1 m
MATLAB和Python都是解释性语言,如何将代码从MATLAB转换为Python呢,这就需要numpy了。
: I! K! T! j# Y; B. g" J$ v' h0 G% z% @/ p6 i
NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。* d& r' V# ?+ q+ s
' `1 R9 h3 z! ~, e' X: s下面对numpy中的操作进行总结。% ^8 k. z3 l0 y6 B6 j; {
numpy包含两种基本的数据类型:数组和矩阵。4 V4 `* y$ |1 o4 O
+ I& Y" x' P9 y
- >>> 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]) L; J6 U G& p6 H
' _) z% B2 n4 \% ]1 x! r; a/ C7 p
9 i8 f' _( j8 t数组创建:
1 C E4 e. J# }( o# H4 {7 u# x$ t1 n
- 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]]"5 |- E: q6 F, ?) i+ V; Z+ w: [
$ I( E! [1 w! ^
$ H7 |5 Y: J8 r3 z1 A
数组对象的属性:8 g7 n3 K% A3 ]$ u9 G) u
3 e4 c- a- H# L! y: U; Y
/ J* k; E& o: I r- m6 G! |9 X& ]8 u3 G5 A D
数组对象的方法:
. y! I# G: r; {, Z8 ]6 {: m* U; H5 p* h' e) M, O' M
, H/ W4 m" d9 p" J( i
9 |# p2 i$ p' ?" H/ A
4 O7 ]$ @$ O! G) C4 E Q4 Z4 }4 q, a. m+ N: _% ^" o
|
|