要查找Numpy数组中每个字符串元素的长度,可以使用Numpy的vectorize()
函数来创建一个新函数来计算每个字符串的长度,然后将其应用于数组。
具体步骤如下:
-
创建一个包含字符串的Numpy数组。例如:
“`python
import numpy as nparr = np.array([‘hello’, ‘world’, ‘numpy’, ‘python’])
“` -
创建一个函数来计算字符串的长度。这个函数需要使用Python的内置
len()
函数来计算字符串的长度,并使用dtype=int
将结果转换为整数类型。例如:“`python
def str_len(s):
return len(s)v_str_len = np.vectorize(str_len, otypes=[np.int])
“` -
将新函数应用于创建的数组上,使用
v_str_len()
函数来计算每个字符串的长度。例如:python
lengths = v_str_len(arr) -
查看每个字符串的长度,使用
print()
函数将lengths
数组打印出来。例如:python
print(lengths)打印的结果为:
[5 5 5 6]
在这个过程中,我们使用了Numpy的vectorize()
函数来创建一个新函数,该函数将应用于每个字符串来计算其长度。然后,我们将新函数应用于创建的字符串数组上,以查找所有字符串的长度。
以下是另一个示例,它演示了如何使用类似形式的方法来查找二维字符串数组中每个字符串的长度:
import numpy as np
arr = np.array([['hello', 'world', 'numpy'], ['python', 'programming', 'language']])
def str_len(s):
return len(s)
v_str_len = np.vectorize(str_len, otypes=[np.int])
lengths = v_str_len(arr)
print(lengths)
这将打印以下结果:
[[5 5 5]
[6 11 8]]
结果是一个二维Numpy数组,它包含原始数组中每个字符串的长度。