|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uqHZau 于 2020-11-12 15:44 编辑
1 z S$ g6 d( [; |1 V" H5 ]
& X; N% ?; v" O' s% J3 L# DMATLAB和Python都是解释性语言,如何将代码从MATLAB转换为Python呢,这就需要numpy了。
3 a8 ^4 c8 N" L
. w; @7 a1 L( x* H' G) |3 pNumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。. K! h" i4 Y+ J
o7 o7 w/ Q- j/ u8 [下面对numpy中的操作进行总结。; ]* H+ y2 L$ @# E: r" X8 B5 f
numpy包含两种基本的数据类型:数组和矩阵。
7 S! ~$ A+ A. D( [: F7 b1 h% Z
6 D: T; ^: y3 x- >>> 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])6 Y8 M7 ?: B, Y7 j& A8 O
% @9 b1 A- y) t- M, D5 S
% i5 W% t( s7 Y: J3 y数组创建:" y( ?8 t# F" U2 D c% X" M+ s
6 V5 X9 O4 X ]$ P5 c7 O- 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]]"
9 U+ K: J* P o) w8 q* m% X3 }
2 z8 r4 H( I. h* z$ s- `9 Z# E7 ~8 r; z5 T: l% r
数组对象的属性:
3 F0 f% I3 ?1 u9 Q$ m. X3 V7 f0 x8 u2 e; R
2 j! U* J7 \4 H$ V# s+ c8 n
# r) k7 t. E% p! w6 R8 F数组对象的方法:
3 C5 }; _/ g" G2 Z& k9 l3 ]8 P& b8 X6 H
' ?" K5 c6 L, t% d% i. q2 F- p1 O/ }
! f# m2 F1 \- o- E" e
. A$ W3 @) J9 X% |3 ^* n' ^0 T6 d
/ J n6 Y9 v0 z* J" T* a0 c% Y |
|