鄙人学习笔记,这个笔记以例子为主。
开发工具: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]]