- NumPy 教程
- NumPy - 主页
- NumPy - 简介
- NumPy - 环境
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy - 数组属性
- NumPy - 数组创建例程
- NumPy - 来自现有数据的数组
- 来自数值范围的数组
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy - 广播
- NumPy - 迭代数组
- NumPy - 数组操作
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 算术运算
- NumPy - 统计函数
- 排序、搜索和计数功能
- NumPy - 字节交换
- NumPy - 副本和视图
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy-Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - 使用 NumPy 进行 I/O
- NumPy 有用资源
- NumPy - 快速指南
- NumPy - 有用的资源
- NumPy - 讨论
NumPy - 算术运算
用于执行算术运算(例如add()、subtract()、multiply() 和divide())的输入数组必须具有相同的形状或应符合数组广播规则。
例子
import numpy as np a = np.arange(9, dtype = np.float_).reshape(3,3) print 'First array:' print a print '\n' print 'Second array:' b = np.array([10,10,10]) print b print '\n' print 'Add the two arrays:' print np.add(a,b) print '\n' print 'Subtract the two arrays:' print np.subtract(a,b) print '\n' print 'Multiply the two arrays:' print np.multiply(a,b) print '\n' print 'Divide the two arrays:' print np.divide(a,b)
它将产生以下输出 -
First array: [[ 0. 1. 2.] [ 3. 4. 5.] [ 6. 7. 8.]] Second array: [10 10 10] Add the two arrays: [[ 10. 11. 12.] [ 13. 14. 15.] [ 16. 17. 18.]] Subtract the two arrays: [[-10. -9. -8.] [ -7. -6. -5.] [ -4. -3. -2.]] Multiply the two arrays: [[ 0. 10. 20.] [ 30. 40. 50.] [ 60. 70. 80.]] Divide the two arrays: [[ 0. 0.1 0.2] [ 0.3 0.4 0.5] [ 0.6 0.7 0.8]]
现在让我们讨论 NumPy 中可用的其他一些重要算术函数。
numpy.reciprocal()
该函数按元素返回参数的倒数。对于绝对值大于 1 的元素,由于 Python 处理整数除法的方式,结果始终为 0。对于整数 0,会发出溢出警告。
例子
import numpy as np a = np.array([0.25, 1.33, 1, 0, 100]) print 'Our array is:' print a print '\n' print 'After applying reciprocal function:' print np.reciprocal(a) print '\n' b = np.array([100], dtype = int) print 'The second array is:' print b print '\n' print 'After applying reciprocal function:' print np.reciprocal(b)
它将产生以下输出 -
Our array is: [ 0.25 1.33 1. 0. 100. ] After applying reciprocal function: main.py:9: RuntimeWarning: divide by zero encountered in reciprocal print np.reciprocal(a) [ 4. 0.7518797 1. inf 0.01 ] The second array is: [100] After applying reciprocal function: [0]
numpy.power()
此函数将第一个输入数组中的元素视为基数,并将其返回第二个输入数组中相应元素的幂。
import numpy as np a = np.array([10,100,1000]) print 'Our array is:' print a print '\n' print 'Applying power function:' print np.power(a,2) print '\n' print 'Second array:' b = np.array([1,2,3]) print b print '\n' print 'Applying power function again:' print np.power(a,b)
它将产生以下输出 -
Our array is: [ 10 100 1000] Applying power function: [ 100 10000 1000000] Second array: [1 2 3] Applying power function again: [ 10 10000 1000000000]
numpy.mod()
该函数返回输入数组中相应元素除法的余数。函数numpy.remainder()也产生相同的结果。
import numpy as np a = np.array([10,20,30]) b = np.array([3,5,7]) print 'First array:' print a print '\n' print 'Second array:' print b print '\n' print 'Applying mod() function:' print np.mod(a,b) print '\n' print 'Applying remainder() function:' print np.remainder(a,b)
它将产生以下输出 -
First array: [10 20 30] Second array: [3 5 7] Applying mod() function: [1 0 2] Applying remainder() function: [1 0 2]
以下函数用于对复数数组执行操作。
numpy.real() - 返回复杂数据类型参数的实部。
numpy.imag() - 返回复杂数据类型参数的虚部。
numpy.conj() - 返回复共轭,它是通过改变虚部的符号获得的。
numpy.angle() - 返回复数参数的角度。该函数有度参数。如果为 true,则返回以度为单位的角度,否则返回以弧度为单位的角度。
import numpy as np a = np.array([-5.6j, 0.2j, 11. , 1+1j]) print 'Our array is:' print a print '\n' print 'Applying real() function:' print np.real(a) print '\n' print 'Applying imag() function:' print np.imag(a) print '\n' print 'Applying conj() function:' print np.conj(a) print '\n' print 'Applying angle() function:' print np.angle(a) print '\n' print 'Applying angle() function again (result in degrees)' print np.angle(a, deg = True)
它将产生以下输出 -
Our array is: [ 0.-5.6j 0.+0.2j 11.+0.j 1.+1.j ] Applying real() function: [ 0. 0. 11. 1.] Applying imag() function: [-5.6 0.2 0. 1. ] Applying conj() function: [ 0.+5.6j 0.-0.2j 11.-0.j 1.-1.j ] Applying angle() function: [-1.57079633 1.57079633 0. 0.78539816] Applying angle() function again (result in degrees) [-90. 90. 0. 45.]