#python #numpy-ndarray
#python #numpy-ndarray
Вопрос:
У меня есть приведенный ниже код, где ввод h_ply =['0.12, 0.15, 0.2, 0.125']
h_ply = simpledialog.askstring('Laminate Properties','Ply Thickness')
try:
h_layer_list = [int(x) for x in h_ply.split(',')]
h_layer = np.array(h_layer_list) * 0.001
Я также пытался
h_ply1 = np.array(h_ply)
h_layer = h_ply1.astype(np.float)
Но получил ту же ошибку.
Я пытаюсь получить h_ply
список np.array
из чисел с плавающей запятой. Но появляется ошибка значения. Я понимаю, это может быть потому, что у меня должно быть ''
каждое число, а не только на концах? Но в идеале я хочу избежать этого, чтобы быть более удобным для пользователя. Каков наилучший способ избавиться от этого сообщения об ошибке?
Спасибо
Комментарии:
1. Показать полную обратную трассировку ошибки в виде правильно отформатированного текста в вопросе.
Ответ №1:
Способ справиться с этим — правильно получить доступ к строке. Посмотрите на свои данные:
h_ply =( # a tuple, containing ...
[ # a single element, a list, containing ...
[ # a single element, a list, containing ...
'0.12, 0.15, 0.2, 0.125' # ... a string that you have to split
]
]
)
Вам нужно удалить все эти слои, чтобы добраться до строки:
h_str = h_ply[0][0][0]
Теперь вы можете разделить строку и преобразовать элементы в числовые значения. Опубликованный вами код пытается разделить кортеж и преобразовать его.
Комментарии:
1. Просто чтобы быть уверенным, я должен удалить ее
h_ply =['0.12, 0.15, 0.2, 0.125']
, и тогда она должна работать?2. Нет, вы должны преобразовать ее в строку.
3. Мне очень жаль, я новичок в Python, поэтому я не очень хорошо понимаю. Не могли бы вы привести пример, пожалуйста?
4. Переполнение стека не предназначено для замены существующей документации и руководств. Я привел вам пример. Если вы не понимаете различий между этими структурами данных, нам нужно, чтобы вы вернулись к своим учебным материалам. Индивидуальное обучение выходит за рамки переполнения стека.