首页 > 解决方案 > 'Builtin_function_or_method' 对象不可下标。使用 NumPy 时出错

问题描述

我是 NumPy 的新手,正在创建一个脚本来计算一个单词中每个元音的数量。到目前为止,我已经想出了这个计算所有元音的解决方案:

import numpy as np
num = 0
name = np.array['B','A', 'N', 'A', 'N', 'A']
print(name)
vovel = np.array['A', 'E', 'I', 'O', 'U']
for i in (0,4):
    a = name[i:i+1]
    if a in vovel:
        num = num+1
    
print(num)

但是这段代码一次又一次地给出类型错误。您能否解释一下出了什么问题,以及如何更改它以显示每个元音出现的次数。

标签: pythonpython-3.xnumpynumpy-slicing

解决方案


我会尝试一些更像这样的东西:

对于每个元音(元音),检查元音与名称中的每个字母,并在循环结束时打印计数。

import numpy as np

name = np.array(['B', 'A', 'N', 'A', 'N', 'A'])
vowels = np.array(['A', 'E', 'I', 'O', 'U'])

print(name)

for vowel in vowels:
    count = 0

    for letter in name:
        if letter == vowel:
            count += 1

    print(f'{vowel}: {count}')

还值得一提的是,在 Python 中字符串是可迭代的,这意味着您可以迭代它们。这意味着而不是传递一个 numpy 数组

['B', 'A', 'N', 'A', 'N', 'A']

你实际上可以只传递字符串

'BANANA'

你会得到同样的结果


推荐阅读