#python #python-3.x #numpy #numpy-slicing
#python #python-3.x #numpy #numpy-нарезка
Вопрос:
Я новичок в NumPy и создавал скрипт для подсчета количества каждого элемента в слове. На данный момент я разработал это решение для подсчета всех vovels:
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)
Но этот код снова и снова выдает ошибку типа. Не могли бы вы, пожалуйста, объяснить, что не так, а также как я могу изменить его, чтобы он отображал количество раз, когда происходит каждый ввод.
Комментарии:
1. Вы должны заключить списки в круглые скобки.
2.
name = np.array(['B','A', 'N', 'A', 'N', 'A'])
3. Спасибо, но как мне посчитать значения. Все еще застрял на этом
4. Было бы полезно, если бы вы опубликовали сообщение об ошибке. Но не вижу сообщения об ошибке.
Ответ №1:
Я бы попробовал что-то более похожее на это:
Для каждой гласной (vovel), проверьте гласную напротив каждой буквы в имени и выведите количество в конце цикла.
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'
и вы достигнете тех же результатов
Комментарии:
1. Также только что понял, что пропустил ваш актуальный вопрос, но, как уже ответил @Klaus_D, вам не хватает () вокруг ваших вызовов np.array