当前位置: 首页>编程语言>正文

numpy relu函数怎么写 numpy函数怎么用


文章目录

  • 一、NumPy通用函数
  • 1、什么是通用函数
  • 2、常见的一元通用函数如下:
  • 3、常见的二元通用函数如下表:
  • 二、利用NumPy数组进行数据处理
  • 1、将条件逻辑转为数组运算
  • 2、数组统计运算
  • 3、数组排序(==sort()方法没有返回值==)
  • 4、检索数组元素
  • 5、唯一化及其他集合逻辑


一、NumPy通用函数

1、什么是通用函数

通用函数(ufunc)是一种针对ndarray中的数据执行元素级运算的函数。

注意:函数返回的是一个新的数组

通用函数中接收一个数组参数的函数称为一元通用函数。
那么同理,接受两个数组参数的称为二元通用函数。

2、常见的一元通用函数如下:

(这是一元函数,而且大部分是比较好理解的函数,就不再多写例子了)

函数

描述

abs

计算整数、浮点数或复数的绝对值

sqrt

计算各元素的平方根

square

计算各元素的平方

exp

计算各元素的指数ex

log、log10、log2、log1p

分别对自然对数(底数为e)、底数为10的log、底数为2的log、log(1+x)

sign

计算元素的正负号:1(正数)、0(零)、-1(负数)

ceil

计算个元素的ceiling值,及大于或者等于改制的最小整数

floor

计算元素的floor值,及小于等于该值的最大整数

rint

将各元素四舍五入到最接近的整数

modf

将数组的小数和整数部分以两个独立数组的形式返回

isnan

返回一个表示“哪些值是NaN”的布尔型数组

isfinite、isinf

分别返回表示“哪些元素是有穷的”或“哪些元素是无穷的”的布尔型数组

sin、sinh、cos、cosh、tan、tanh

普通型和双曲型三角函数

arcos、arccosh、arcsin

反三角函数

这里我们只拿两个比较有意思的来演示一下(地板,天花板函数):

import numpy as np
ret = np.array([1.57])
print(np.ceil(ret))#结果为[2.]
print(np.floor(ret))#结果为[1.]

3、常见的二元通用函数如下表:

函数

描述

add

将数组中对应的元素相加

subtract

从第一个数组中减去第二个数组中的元素

multiply

数组元素相乘

divide,floor_divide

除法或向下整除法(舍去余数)

maximum、fmax

元素级的最大值计算

minimum、fmin

元素级的最小值计算

mod

元素级的求模计算

copysign

将第二个数组中的值的符号赋值给第一个数组中的值

greater、greater_equal、less、less_equal、equal、not_equal、logical_and、logical_or、logical_xor

执行元素级的比较运算,最终产生布尔型数组,相当于运算符>、≥、<、≤、==、!=

二、利用NumPy数组进行数据处理

1、将条件逻辑转为数组运算

NumPy的where()函数是三元表达式 x if condition else y的矢量化版本。

import numpy as np
arr_x = np.array([1, 5, 7])
arr_y = np.array([2, 6, 8])
arr_con = np.array([True, False, True])
result = np.where(arr_con, arr_x, arr_y)
print(result)
result2 = np.where(arr_x > 3, 1, 0)#赋值操作
print(result2)

2、数组统计运算

Numpy数组中与统计运算相关的方法

函数

描述

sum

对数组中全部或某个轴向的元素求和

mean

算术平均值

min

计算数组中的最小值

max

计算数组中的最大值

argmin

表示最小索引值

argmax

表示最大索引值

cumsum

所有元素的累计和

cumprod

所有元素的累计积

1.通过NumPy库中的相关方法,我们可以很方便地运用Python进行数组的统计汇总

import numpy as np
arr_x = np.array([1, 4, 5])
print(np.sum(arr_x))
print(np.mean(arr_x))
print(np.argmax(arr_x))
print(np.cumsum(arr_x))
import numpy as np
arr = np.arange(10)
arr = arr.reshape((2, 5))
print(arr)
print(arr.sum(axis=0))
print(arr.sum(axis=1))
#以上所有统计相关的函数,都可以指定轴

2.sun()

sum(a)默认为对输入参数中的所有元素进行求和

import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
print(arr)
print(np.sum(arr))
b = np.arange(12).reshape(2, 6)
print(b)
print(np.sum(b))

sum()输入参数带有axis时,将按照指定axis进行对应求和

import numpy as np
b = np.arange(12).reshape(2, 6)
print(b)
print(np.sum(b))
print(np.sum(b, axis=0))
print(np.sum(b, axis=1))

sum()输入参数axis为多个轴时,则依次按要求在axis上进行多次求和

```python
import numpy as np
a = np.arange(12).reshape(2, 2, 3)
print(a)
print(np.sum(a, axis=(0, 1)))
print(np.sum(a, axis=(1, 2)))
print(np.sum(a, axis=(0, 1, 2)))

3.cumsum()

一维,就是当前列之前的和加到当前列上

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7])
print(np.cumsum(a))

二维,axis=0(第一行不动,将第一行累加到其他行);axis=1(进入最内层,转化成列处理。第一列不动,将第一列累加到其他列)

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.cumsum(a, axis=0))
print(np.cumsum(a, axis=1))

三维,axis=0(第一行不动,将第一行累加到其他行);axis=1(进入第二层,每个第二层第一行不动,累加到其他行);axis=2(进入最内层,转化成列处理,第一列不动,将其累加到其他列)

import numpy as np
a = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 20, 30]]])
print(np.cumsum(a, axis=0))

print(np.cumsum(a, axis=1))
print(np.cumsum(a, axis=2))

3、数组排序(sort()方法没有返回值)

1.如果希望对NumPy数组中的元素进行排序,可以通过sort()方法实现(默认通过最后一个轴排序)

import numpy as np
arr = np.array([[6, 2, 7], [3, 6, 2], [4, 3, 2]])
q = np.sort(arr)#此时axis=1或-1都是指最后一个轴(二维)
print(q)

2.如果希望对任何一个轴上的元素进行排序,则需要将轴的编号作为sort()方法的参数传入

import numpy as np
arr = np.array([[6, 2, 7], [3, 6, 2], [4, 3, 2]])
q = np.sort(arr, 0)
print(q)

4、检索数组元素

1.all()函数用于判断整个数组中的元素的值是否全部满足条件,如果满足条件返回True,否则返回False

import numpy as np
arr = np.array([[1, -2, -7], [-3, 6, 2], [-4, 3, 2]])
q = np.all(arr>0)#arr的所有元素是否都大于0
print(q)#输出结果为False

2.any()函数用于判断整个数组中的元素至少有一个满足条件就返回True,否则就返回False

import numpy as np
arr = np.array([[1, -2, -7], [-3, 6, 2], [-4, 3, 2]])
q = np.any(arr>0)#arr的所有元素是否有一个大于0
print(q)#输出结果为True

5、唯一化及其他集合逻辑

1.针对一维数组,NumPy提供了unique()函数来找出数组中的唯一值,并返回排序后的结果

import numpy as np
arr = np.array([12, 11, 34, 23, 12, 8, 11])
print(np.unique(arr))

2.in1d()函数用于判断数组中的元素是否在另一个数组中存在,该函数返回的是一个布尔型的数组

import numpy as np
arr = np.array([12, 11, 34, 23, 12, 8, 11])
print(np.in1d(arr, [11, 12]))

3.NumPy提供的有关集合的函数还有很多,常见的函数如下表所示:

函数

描述

unique(x)

计算x中的唯一元素,并返回有序结果

intersect1d(x,y)

计算x中的公共元素,并返回有序结果

union1d(x,y)

计算x中的并集,并返回有序结果

in1d(x,y)

得到一个表示“x”的元素是否包含“y”的布尔型数组

setdiff1d(x,y)

集合的差,即元素在x中且不在y中

setxor1d(x,y)

集合的对称差,及存在于一个数组中但不同时存在于两个数组中的元素



https://www.xamrdz.com/lan/5vx1957370.html

相关文章: