查找Numpy数组中每个字符串元素的长度

  • Post category:Python

要查找Numpy数组中每个字符串元素的长度,可以使用Numpy的vectorize()函数来创建一个新函数来计算每个字符串的长度,然后将其应用于数组。

具体步骤如下:

  1. 创建一个包含字符串的Numpy数组。例如:

    “`python
    import numpy as np

    arr = np.array([‘hello’, ‘world’, ‘numpy’, ‘python’])
    “`

  2. 创建一个函数来计算字符串的长度。这个函数需要使用Python的内置len()函数来计算字符串的长度,并使用dtype=int将结果转换为整数类型。例如:

    “`python
    def str_len(s):
    return len(s)

    v_str_len = np.vectorize(str_len, otypes=[np.int])
    “`

  3. 将新函数应用于创建的数组上,使用v_str_len()函数来计算每个字符串的长度。例如:

    python
    lengths = v_str_len(arr)

  4. 查看每个字符串的长度,使用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数组,它包含原始数组中每个字符串的长度。