Ismycode |.
В Python, если вы в основном работаете с Numpy и создании многомерного массива, вы бы столкнулись с ValueError: Установка элемента массива с последовательностью.
Что такое ValueError: установка элемента массива с последовательностью?
ValueError возникает, когда функция получает аргумент правильного типа, но значение типа недействительна. В этом случае, если массив NaMpy не находится в последовательности, вы получите ошибку значений.
Если вы посмотрите на примеру, MUSPY Array 2-мерное, но на более позднем этапе мы также смешивали с одномерным массивом, и, следовательно, Python обнаруживает это как неоднородную форму, что означает структуру массива, и следовательно, Python бросает ошибку значения.
#Numpy array of different dimensions import numpy as np print(np.array([[[1, 2], [3, 4], [5, 6]], [[1],[2]]], dtype=int)) # Output Traceback (most recent call last): File "c:\Projects\Tryouts\listindexerror.py", line 2, inprint(np.array([[[1, 2], [3, 4], [5, 6]], [[1],[2]]], dtype=int)) ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.
Решение – Создавая тот же размерный массив и имея идентичные элементы массива в каждом массиве, решит проблему, как показано ниже.
#Numpy array of same dimensions import numpy as np print(np.array([[[1, 2], [3, 4], [5, 6]]], dtype=int)) # Output [[[1 2] [3 4] [5 6]]]
Другая возможность, в которую вы получите ошибку значений, когда вы пытаетесь создать массив с различными типами элементов; Например, рассмотрим пример ниже, где у нас есть массив с поплавками и смешанными строками, которые снова бросают ValuctionError: не удалось преобразовать строку для плавания.
# Mutliple data type and dtype as float import numpy as np print(np.array([55.55, 12.5, "Hello World"], dtype=float)) # Output Traceback (most recent call last): File "c:\Projects\Tryouts\listindexerror.py", line 2, inprint(np.array([55.55, 12.5, "Hello World"], dtype=float)) ValueError: could not convert string to float: 'Hello World'
Решение – Решение этого простота, если вам нужно, либо вы объявляете только плавающие числа внутри массива или если вы хотите обоим, то убедитесь, что вы изменяете DTYPE в качестве объекта вместо Float, как показано ниже.
# Changing the dtype as object and having multiple data type import numpy as np print(np.array([55.55, 12.5, "Hello World"], dtype=object)) # Output [55.55 12.5 'Hello World']
Проверьте приведенные ниже примеры для получения большего количества случаев использования и лучших практик во время работы с помощью Numpy Armays.
import numpy numpy.array([1,2,3]) #good numpy.array([1, (2,3)]) #Fail, can't convert a tuple into a numpy #array element numpy.mean([5,(6+7)]) #good numpy.mean([5,tuple(range(2))]) #Fail, can't convert a tuple into a numpy #array element def foo(): return 3 numpy.array([2, foo()]) #good def foo(): return [3,4] numpy.array([2, foo()]) #Fail, can't convert a list into a numpy #array element
Пост Python ValueError: Установка элемента массива с последовательностью появился первым на INSMYCODE Отказ
Оригинал: “https://dev.to/itsmycode/python-valueerror-setting-an-array-element-with-a-sequence-49eh”