python对numpy数组求导_NumPy数组计算——python

一、通用函数运算

(一),数组的运算

对于一个数组,可以直接用加+,减-,乘*,除/,逻辑非,指数运算符 **,其结果就是数组里面每一个元素运算的结果。

(二),NumPy实现的算术运算符

1、加法运算:np.add()

>>> x1 = np.arange(9.0).reshape((3, 3))

[[0. 1. 2.]

[3. 4. 5.]

[6. 7. 8.]]

>>> x2 = np.arange(3.0)

[0. 1. 2.]

>>> np.add(x1, x2)

array([[ 0., 2., 4.],

[ 3., 5., 7.],

[ 6., 8., 10.]])

这个例子是每一列对应相加。

2、np.subtract() 减法运算

>>> x1 = np.arange(9.0).reshape((3, 3))

[[0. 1. 2.]

[3. 4. 5.]

[6. 7. 8.]]

>>> x2 = np.arange(3.0)

[0. 1. 2.]

>>> np.subtract(x1, x2)

array([[ 0., 0., 0.],

[ 3., 3., 3.],

[ 6., 6., 6.]])

每列对应相减。

3、np.negative() 负数运算

>>> np.negative([1.,-1.])

array([-1., 1.])

4、np.multiplt() 乘法运算

>>> x1 = np.arange(9.0).reshape((3, 3))

[[0. 1. 2.]

[3. 4. 5.]

[6. 7. 8.]]

>>> x2 = np.arange(3.0)

[0. 1. 2.]

>>> np.multiply(x1, x2)

array([[ 0., 1., 4.],

[ 0., 4., 10.],

[ 0., 7., 16.]])

每列元素对应相乘。

5、np.divide() 除法运算

>>> x = np.arange(5)

>>> np.true_divide(x, 4)

array([ 0. , 0.25, 0.5 , 0.75, 1. ])

>>> from __future__ import division

>>> x/4

array([ 0. , 0.25, 0.5 , 0.75, 1. ])

>>> x//4

array([0, 0, 0, 0, 1]

6、np.floor_divide() 地板除法运算

>>> np.floor_divide(7,3)

2

>>> np.floor_divide([1., 2., 3., 4.], 2.5)

array([ 0., 0., 1., 1.])

即向下取整。

7、np.power() 指数运算

>>> x1 = range(6)

>>> x1

[0, 1, 2, 3, 4, 5]

>>> np.power(x1, 3)

array([ 0, 1, 8, 27, 64, 125])

>>> x2 = [1.0, 2.0, 3.0, 3.0, 2.0, 1.0]

>>> np.power(x1, x2)

array([ 0., 1., 8., 27., 16., 5.])

8、np.mod() 模/余数

>>> np.remainder([4, 7], [2, 3])

array([0, 1])

>>> np.remainder(np.arange(7), 5)

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

(三)、绝对值

1、abs() ——python内置函数

2、np.absoute() 或者 np.abs()

(四)、三角函数

1、np.sin()

>>> np.sin(np.array((0., 30., 45., 60., 90.)) * np.pi / 180. )

array([ 0. , 0.5 , 0.70710678, 0.8660254 , 1. ])

2、np.cos()

>>> np.cos(np.array([0, np.pi/2, np.pi]))

array([ 1.00000000e+00, 6.12303177e-17, -1.00000000e+00])

>>> # Example of ValueError due to provision of shape mis-matched `out`

>>> np.cos(np.zeros((3,3)),np.zeros((2,2)))

Traceback (most recent call last):

File "", line 1, in

ValueError: operands could not be broadcast together with shapes (3,3) (2,2)

3、np.tan()

>>> from math import pi

>>> np.tan(np.array([-pi,pi/2,pi]))

array([ 1.22460635e-16, 1.63317787e+16, -1.22460635e-16])

(五)、指数与对数

1、指数

np.exp(x)      e 的x次

np.exp2(x)     2的x次、

np.power(x, y)     x 的 y 次

2、对数

np.log(x)    以e为底

np.log2(x)    以2位底

np.log10(x)    以10为底

二、高级通用函数

1、指定输出:

>>>x = np.arange(5)

>>>y = np.empty(5)

>>>np.multiply(x, 10, out=y)

array([ 0., 10., 20., 30., 40.])

指定 y 为输出数组

2、聚合——reduce()

>>> np.multiply.reduce([2,3,5])

30

详情看官方文档。

3、外积——outer()

>>>x = np.arange(1, 6)

>>>np.multiply.outer(x, x)

array([[ 1, 2, 3, 4, 5],

[ 2, 4, 6, 8, 10],

[ 3, 6, 9, 12, 15],

[ 4, 8, 12, 16, 20],

[ 5, 10, 15, 20, 25]])

你可能感兴趣的:(python对numpy数组求导_NumPy数组计算——python)