# Numpy ufunc如何使用通用函数？代码示例

2021年3月23日15:25:17 发表评论 637 次浏览

• 这些函数在ndarray(N维数组), 即Numpy的数组类。
• 它执行快速的按元素数组操作。
• 它支持阵列广播, 类型转换等各种函数。
• Numpy通用函数是属于numpy.ufunc类的对象。
• 也可以使用以下命令将Python函数创建为通用函数frompyfunc库函数。

Numpy中的一些基本通用函数是-

### 三角函数：

arcsin, arccos, arctan 计算反正弦, 余弦和正切

arcsinh, arccosh, arctanh 计算反双曲正弦, 余弦和正切
``````# Python code to demonstrate trignometric function
import numpy as np

# create an array of angles
angles = np.array([ 0 , 30 , 45 , 60 , 90 , 180 ])

# conversion of degree into radians

# sine of angles
print ( 'Sine of angles in the array:' )

# inverse sine of sine values
print ( 'Inverse Sine of sine values:' )

# hyperbolic sine of angles
print ( 'Sine hyperbolic of angles in the array:' )

# inverse sine hyperbolic
print ( 'Inverse Sine hyperbolic:' )
print (np.sin(sineh_value))

# hypot function demonstration
base = 4
height = 3
print ( 'hypotenuse of right triangle is:' )
print (np.hypot(base, height))``````

``````Sine of angles in the array:
[  0.00000000e+00   5.00000000e-01   7.07106781e-01   8.66025404e-01
1.00000000e+00   1.22464680e-16]

Inverse Sine of sine values:
[  0.00000000e+00   3.00000000e+01   4.50000000e+01   6.00000000e+01
9.00000000e+01   7.01670930e-15]

Sine hyperbolic of angles in the array:
[  0.           0.54785347   0.86867096   1.24936705   2.3012989
11.54873936]

Inverse Sine hyperbolic:
[ 0.          0.52085606  0.76347126  0.94878485  0.74483916 -0.85086591]

hypotenuse of right triangle is:
5.0``````

### 统计函数：

``````# Python code demonstrate statistical function
import numpy as np

# construct a weight array
weight = np.array([ 50.7 , 52.5 , 50 , 58 , 55.63 , 73.25 , 49.5 , 45 ])

# minimum and maximum
print ( 'Minimum and maximum weight of the students: ' )
print (np.amin(weight), np.amax(weight))

# range of weight i.e. max weight-min weight
print ( 'Range of the weight of the students: ' )
print (np.ptp(weight))

# percentile
print ( 'Weight below which 70 % student fall: ' )
print (np.percentile(weight, 70 ))

# mean
print ( 'Mean weight of the students: ' )
print (np.mean(weight))

# median
print ( 'Median weight of the students: ' )
print (np.median(weight))

# standard deviation
print ( 'Standard deviation of weight of the students: ' )
print (np.std(weight))

# variance
print ( 'Variance of weight of the students: ' )
print (np.var(weight))

# average
print ( 'Average weight of the students: ' )
print (np.average(weight))``````

``````Minimum and maximum weight of the students:
45.0 73.25

Range of the weight of the students:
28.25

Weight below which 70 % student fall:
55.317

Mean weight of the students:
54.3225

Median weight of the students:
51.6

Standard deviation of weight of the students:
8.05277397857

Variance of weight of the students:
64.84716875

Average weight of the students:
54.3225``````

### 位旋转函数：

bitwies_or 对两个数组元素执行按位或运算
bitwise_xor 对两个数组元素执行按位异或运算

``````# Python code to demonstrate bitwise-function
import numpy as np

# construct an array of even and odd numbers
even = np.array([ 0 , 2 , 4 , 6 , 8 , 16 , 32 ])
odd = np.array([ 1 , 3 , 5 , 7 , 9 , 17 , 33 ])

# bitwise_and
print ( 'bitwise_and of two arrays: ' )
print (np.bitwise_and(even, odd))

# bitwise_or
print ( 'bitwise_or of two arrays: ' )
print (np.bitwise_or(even, odd))

# bitwise_xor
print ( 'bitwise_xor of two arrays: ' )
print (np.bitwise_xor(even, odd))

# invert or not
print ( 'inversion of even no. array: ' )
print (np.invert(even))

# left_shift
print ( 'left_shift of even no. array: ' )
print (np.left_shift(even, 1 ))

# right_shift
print ( 'right_shift of even no. array: ' )
print (np.right_shift(even, 1 ))``````

``````bitwise_and of two arrays:
[ 0  2  4  6  8 16 32]

bitwise_or of two arrays:
[ 1  3  5  7  9 17 33]

bitwise_xor of two arrays:
[1 1 1 1 1 1 1]

inversion of even no. array:
[ -1  -3  -5  -7  -9 -17 -33]

left_shift of even no. array:
[ 0  4  8 12 16 32 64]

right_shift of even no. array:
[ 0  1  2  3  4  8 16]``````