數組的函數有一元函數(對一個結果數組進行計算)與二元函數(兩個數組之間的計算);計算結果可以輸出為新對象,也可改變數組本身
實例:運算函數
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]
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。