|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uqHZau 于 2020-11-12 15:44 编辑 ! d3 o/ o0 B; J* j' C
* C2 z5 ~+ r2 @* x* L* y+ ~MATLAB和Python都是解释性语言,如何将代码从MATLAB转换为Python呢,这就需要numpy了。
* j; ~) s* z2 u# e
6 i& l; q: T2 }5 u9 _- FNumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。5 m. t A8 B$ |# g
7 G- D! M2 A9 H: |1 p
下面对numpy中的操作进行总结。
. J F* R( x% R! _* o \1 P Jnumpy包含两种基本的数据类型:数组和矩阵。
4 `, e' `# z1 T. @
9 S- {' a' W) x* B+ r8 t- >>> 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])7 V2 {! r0 n" R4 R; k2 G: V
/ O5 f- y) D% S; z2 _
- m, k% M5 B" n% ?数组创建:% z* Y1 |# k# I2 a
1 i3 ^# P# }- B3 u2 w+ T
- 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]]"
# p* e% t) ^% F# }6 g5 P
$ O% `2 ?+ b5 X; ]+ V+ ]+ x7 o3 _+ I- H. B; l
数组对象的属性:
* Y( O+ R4 R5 Z3 b" c7 {1 u
4 }' A2 {2 T- m. Y# T
6 @9 d9 Y& }' X6 q o1 U1 r- I$ Y4 g) E0 z5 S/ r
数组对象的方法:
; J+ u- l& D# `3 Z9 S+ d, ?; I1 M$ k) S$ E4 E" z
Q4 q- W; {, k0 V
) d) `$ s2 `& Z, G j* a1 z( [
+ S% ^2 Q/ s/ C( q" L* B1 k& K9 I3 |
5 o1 Z$ [7 g+ E, U
|
|