数组的函数有一元函数(对一个结果数组进行计算)与二元函数(两个数组之间的计算);计算结果可以输出为新对象,也可改变数组本身
实例:运算函数
1、不改变数组本身
- 一元函数
import numpy as np
a=np.array([1.2,-1,2.5,3])
b=np.arange(4)
print('数组b:\n',b)
print('数组a:\n',a)
print('a+b的绝对值:\n',np.abs(a+b))
print('a的平方根:\n',np.sqrt(a))
print('a的平方:\n',np.square(a))
print('a的指数:\n',np.exp(a))
print('a的底数为10的log:\n',np.log10(a))
print('a的元素正负布尔值:\n',np.sign(a))
print('a中>=每个元素的最小整数:\n',np.ceil(a))
print('a中<=每个元素的最小整数:\n',np.floor(a))
print('a中每个元素四舍五入的整数:\n',np.rint(a))
print('a中每个元素的整数与小数:\n',np.modf(a))
print('a中每个元素是否为NaN的布尔值:\n',np.isnan(a))
print('a中每个元素是否为无穷的布尔值:\n',np.isinf(a))
print('a中每个元素是否为非空有穷的布尔值:\n',np.isfinite(a))
runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
数组b:
[0 1 2 3]
数组a:
[ 1.2 -1. 2.5 3. ]
a+b的绝对值:
[1.2 0. 4.5 6. ]
a的平方根:
[1.09544512 nan 1.58113883 1.73205081]
a的平方:
[1.44 1. 6.25 9. ]
a的指数:
[ 3.32011692 0.36787944 12.18249396 20.08553692]
a的底数为10的log:
[0.07918125 nan 0.39794001 0.47712125]
a的元素正负布尔值:
[ 1. -1. 1. 1.]
a中>=每个元素的最小整数:
[ 2. -1. 3. 3.]
a中<=每个元素的最小整数:
[ 1. -1. 2. 3.]
a中每个元素四舍五入的整数:
[ 1. -1. 2. 3.]
a中每个元素的整数与小数:
(array([ 0.2, -0. , 0.5, 0. ]), array([ 1., -1., 2., 3.]))
a中每个元素是否为NaN的布尔值:
[False False False False]
a中每个元素是否为无穷的布尔值:
[False False False False]
a中每个元素是否为非空有穷的布尔值:
[ True True True True]
- 二元函数
import numpy as np
a=np.array([1.2,-1,2.5,3])
b=np.arange(4)
print('数组b:\n',b)
print('数组a:\n',a)
print('a+b:\n',np.add(a,b))#或a+b
print('a-b:\n',np.subtract(a,b))#或a-b
print('a*b:\n',np.multiply(a,b))#或a*b
print('a/b:\n',np.divide(a,b))#或a/b
print('a/b的整数:\n',np.floor_divide(a,b))#或a//b
print('a/b的余数:\n',np.mod(a,b))#或a%b
print('a的b次方:\n',np.power(a,b))
print('a与b的同索引上最大值的混合数组:\n',np.maximum(a,b))#np.fmax(a,b)忽略NaN值
print('a与b的同索引上最小值的混合数组:\n',np.minimum(a,b))#np.fmin(a,b)忽略NaN值
print('将b的元素符号赋给a的同索引上的元素:\n',np.copysign(a,b))
print('a是否大于b:\n',np.greater(a,b))#或a>b
print('a是否大于等于b:\n',np.greater_equal(a,b))#或a>=b
print('a是否小于b:\n',np.less(a,b))#或a<b
print('a是否小于等于b:\n',np.less_equal(a,b))#或a<=b
print('a是否等于b:\n',np.equal(a,b))#或a=b
print('a是否不等于b:\n',np.not_equal(a,b))#或a!=b
print('a>1且a>b的布尔值:\n',np.logical_and(a>1,a>b))#或print((a>1)&(a>b))
print('a>1或a>b的布尔值:\n',np.logical_or(a>1,a>b))#或print((a>1)|(a>b))
print('不属于a>1且a>b的布尔值:\n',np.logical_not((a>1)&(a>b)))#或print((a<=1)|(a<=b))
print('输出\'或\'而不是\'非和且\'(a>1,a>b)的布尔值:\n',np.logical_xor(a>1,a>b))#或print((a>1)^(a>b))
runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
数组b:
[0 1 2 3]
数组a:
[ 1.2 -1. 2.5 3. ]
a+b:
[1.2 0. 4.5 6. ]
a-b:
[ 1.2 -2. 0.5 0. ]
a*b:
[ 0. -1. 5. 9.]
a/b:
[ inf -1. 1.25 1. ]
a/b的整数:
[nan -1. 1. 1.]
a/b的余数:
[nan 0. 0.5 0. ]
a的b次方:
[ 1. -1. 6.25 27. ]
a与b的同索引上最大值的混合数组:
[1.2 1. 2.5 3. ]
a与b的同索引上最小值的混合数组:
[ 0. -1. 2. 3.]
将b的元素符号赋给a的同索引上的元素:
[1.2 1. 2.5 3. ]
a是否大于b:
[ True False True False]
a是否大于等于b:
[ True False True True]
a是否小于b:
[False True False False]
a是否小于等于b:
[False True False True]
a是否等于b:
[False False False True]
a是否不等于b:
[ True True True False]
a>1且a>b的布尔值:
[ True False True False]
a>1或a>b的布尔值:
[ True False True True]
不属于a>1且a>b的布尔值:
[False True False True]
输出'或'而不是'非和且'(a>1,a>b)的布尔值:
[False False False True]
2、改变数组本身
import numpy as np
a=np.array([1.2,-1,2.5,3])
b=np.arange(4)
print('输出\'或\'而不是\'非和且\'(a>1,a>b)的布尔值:\n',np.logical_xor(a>1,a>b,b))#或print((a>1)^(a>b))
print('改变后的b:\n',b)
runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
输出'或'而不是'非和且'(a>1,a>b)的布尔值:
[0 0 0 1]
改变后的b:
[0 0 0 1]