Python Numpy

Numpy arrays:

array&matrix

An array may be a vector (one-dimensional array)

>>> from numpy import *
>>> array([1, 2, 3, 4])
array([1, 2, 3, 4])

Or a matrix (a two-dimensional array)

>>> array([[1, 2], [3, 4]])
array([[1, 2],
[3, 4]])

A matrix is always two-dimensional

Numpy arrays赋值

引用拷贝:asmatrix() or mat() (from an array) or asarray()(from a matrix)

>>> a = array([1, 2, 3, 4])
>>> m = asmatrix(a)  # Copy as reference
>>> a[0] = 1000
>>> m
matrix([[1000,2,3,4]])

值拷贝:matrix() or array()
>>> a = array([1, 2, 3, 4])
>>> m = matrix(a)
>>> a[0] = 1000
>>> m
matrix([[1, 2, 3, 4]])

ones((m,n)):生成m*n全1矩阵

zeros((m,n)):生成m*n全0矩阵

eye(n):生成对角线为1的对称方阵

求矩阵的逆:a.T或者b.H 这里a是array对象,b是matrix对象


a = array([[1,2],[3,4]])
b = mat([[1,2],[3,4]])
a可以用a[1][1]或a[1, 1]取出元素4

b只能用[1, 1]取出4,不能用[1][1]


如果a,b都是array对象:

矩阵相乘用dot(a,b)

a*b只是把矩阵对应的元素相乘

如果a,b都是matrix对象:

dot(a,b)和a*b都是矩阵相乘

multiply(a,b)是对应的矩阵元素相乘


Six advices from Hans Petter Langtangen
Section Optimization of Python code (Langtangen, 2005, p. 426+)
Avoid loops, use NumPy (see also my blog)
Avoid prefix in often called functions.
Plain functions run faster than class methods
Don’t use NumPy for scalar arguments
Use xrange instead of range (in Python < 3)
if-else is faster than try-except


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值