Numpy ufunc 通用函数

Numpy ufunc 通用函数

Numpy中的通用函数是简单的数学函数。它只是我们给Numpy库中的数学函数的一个术语。Numpy提供了各种通用函数,涵盖了各种各样的操作。
这些函数包括标准三角函数、用于算术运算的函数、处理复数、统计函数等。通用函数具有以下各种特点

  • 这些函数对ndarray(N维数组)即Numpy的数组类进行操作。
  • 它可以执行快速的从元素到数组的操作。
  • 它支持各种功能,如数组广播、类型铸造等。
  • Numpy,通用函数是属于numpy.ufunc类的对象。
  • Python函数也可以使用frompyfunc库函数创建为一个通用函数。
  • 当在数组上使用相应的算术运算符时,一些ufuncs被自动调用。例如,当使用’+’运算符对两个数组进行元素相加时,内部会调用np.add()。

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

Trigonometric 函数:

这些函数是以弧度为单位工作的,所以角度需要通过乘以π/180来转换为弧度。只有这样我们才能调用三角函数。它们接受一个数组作为输入参数。它包括以下函数

功能 说明
sin, cos, tan 计算角的正弦、余弦和切线
arcsin, arccos, arctan 计算反正弦、反余弦和正切线
sinh, cosh, tanh 计算双曲的正弦、余弦和正切线
arcsinh, arccosh, arctanh 计算反双曲正弦、余弦和切线
deg2rad 将度数转换成弧度
rad2deg 将弧度转换成度数
# Python code to demonstrate trigonometric function
import numpy as np
  
# create an array of angles
angles = np.array([0, 30, 45, 60, 90, 180]) 
  
# conversion of degree into radians
# using deg2rad function
radians = np.deg2rad(angles)
  
# sine of angles
print('Sine of angles in the array:')
sine_value = np.sin(radians)
print(np.sin(radians))
  
# inverse sine of sine values
print('Inverse Sine of sine values:')
print(np.rad2deg(np.arcsin(sine_value)))
  
# hyperbolic sine of angles
print('Sine hyperbolic of angles in the array:')
sineh_value = np.sinh(radians)
print(np.sinh(radians))
  
# 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

Statistical 函数:

这些函数用于计算数组元素的平均值、中位数、方差、最小值。它包括以下函数

功能 说明
amin, amax 返回数组的最小值或最大值或沿轴的最大值
ptp 返回一个数组或一个轴的数值范围(最大-最小)。
percentile(a, p, axis) 计算数组的第p个百分位数或沿指定轴的百分位数
median 计算沿指定轴的数据的中位数
mean 计算沿指定轴线的数据的平均值
std 计算沿指定轴的数据的标准偏差
var 计算沿指定轴线的数据方差
average 计算沿指定轴线的数据的平均值
# 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

Bit-twiddling 函数:

这些函数接受整数值作为输入参数,并对这些整数的二进制表示进行逐位操作。它包括如下函数

功能 说明
bitwise_and 对两个数组元素进行位和操作
bitwies_or 对两个数组元素进行位或操作
bitwise_xor 对两个数组元素进行bitwise xor操作
invert 对一个数组元素进行比特反转。
left_shift 将元素的位数向左移动
right_shift 将元素的位数向左移。
# 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]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程