numpy基础(part8)--符号数组与矢量化

鄙人学习笔记,这个笔记以例子为主。
开发工具:Spyder



符号数组

sign()函数可以把样本数组变成对应的符号数组,正数为1,负数为-1,0为0.

相关函数:

np.sign(源数组)
  • 例子

代码:

import numpy as np

ary01 = np.array([-1, -2, 0, 4, 0, 7])
ary02 = np.sign(ary01)

print('ary02:', ary02)

结果:

ary02: [-1 -1  0  1  0  1]

数组处理函数

相关函数:

目标数组 = np.piecewise(源数组, 条件序列, 取值序列)

针对源数组中的每一个元素,检测其是否符合条件序列中的条件,符合哪个条件就用取值序列中与之对应的值,来表示该元素,并放到目标数组中返回。

  • 例子

代码:

import numpy as np

ary01 = np.array([-1, -2, 0, 4, 0, 7])
ary02 = np.piecewise(ary01, 
                     [ary01 < 0, ary01 == 0, ary01 > 0],
                     [-1, 0, 1])

print('ary02:', ary02)

结果:

ary02: [-1 -1  0  1  0  1]

矢量化

矢量化是指用数组代替标量,来操作数组中的每一个元素
numpy提供了vectorize()函数,该函数可以把处理标量的函数矢量化,它的返回值是一个可以直接处理ndarray数组的函数。

  • 例子

代码:

import numpy as np

#处理标量的函数
def fun01(a, b):
    return a*b - 1

ary01 = np.arange(3, 9).reshape(2, 3)
ary02 = np.arange(4, 10).reshape(2, 3)

#矢量化函数
fun01_vec = np.vectorize(fun01)
print(fun01_vec(ary01, ary02))

结果:

[[11 19 29]
 [41 55 71]]
发布了141 篇原创文章 · 获赞 24 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/105189088