|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uqHZau 于 2020-11-12 15:44 编辑
+ L }! N1 { |1 X$ o0 k
/ l% P' h8 j9 W1 e& D, M# S9 E }MATLAB和Python都是解释性语言,如何将代码从MATLAB转换为Python呢,这就需要numpy了。
, r5 K: G8 \* |! x9 P6 ]* C. _$ r1 z4 D0 z {- j
NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。
' I$ Q: W: V* ^( Z: p7 J2 ]$ ~$ `1 _# E$ w" G G5 v# w8 n/ j* G
下面对numpy中的操作进行总结。
v4 c$ x! E/ X0 f- Tnumpy包含两种基本的数据类型:数组和矩阵。: \! S, [- m7 l( {- v6 n* |% [/ U
7 o; i- ?% M0 o
- >>> 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])
5 [& H# J, U' j6 D# O1 L
" g4 X3 U9 Y# K4 W$ B7 W) T! P0 f# @2 Q" D
数组创建:: l% Q1 J7 t* h
* j F6 q6 x" g1 L
- 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]]"
( s5 J. M+ ^# p/ h: y 3 h# S3 H2 `4 a. h0 ]
$ C7 ]' q' r+ h, }
数组对象的属性:
) w( m( D0 P2 B* z, y+ m
' q5 l9 X7 S0 {2 @
0 P) B: S$ k0 ` \2 {
7 ^( Z- ^/ @+ ]3 J) z. _* ]数组对象的方法:1 B7 [/ l& ` p$ ]" J% L4 p
X0 r% f( F0 K
: y+ t$ r3 Y& n: ?$ x
2 F- x( h, Z% n' _1 U) }5 K0 Q
4 X# L$ s, m/ p
& ?) H( x8 x: X3 j2 U |
|