【发布时间】:2021-11-25 19:52:09
【问题描述】:
我正在尝试在numpy string arrays 上申请vectorization with custom function。
例子:
import numpy
test_array = numpy.char.array(["sample1-sample","sample2-sample"])
numpy.char.array(test_array.split('-'))[:,0]
操作:
chararray([b'sample1', b'sample2'], dtype='|S7')
但是这些都是in-built的功能,有没有其他方法可以实现vectorization with custom functions。示例,具有以下功能:
def custom(text):
return text[0]
【问题讨论】:
-
您可以使用 np.vectorize numpy.org/doc/stable/reference/generated/numpy.vectorize.html 对任何函数进行矢量化。然而,根据 numpy 本身,它的主要语法糖及其实现是一个 for 循环。我不确定您要达到什么目的,但使用内置函数通常是很好的做法。
-
即使
np.char函数也使用python 字符串方法,并且并不比使用相同方法的列表推导更快。字符串无法像使用数字 dtypes 那样进行快速“矢量化”。
标签: pandas numpy vectorization numpy-ndarray array-broadcasting