Python ValueError: 시퀀스가 있는 배열 요소 설정
10862 단어 codenewbiepythontutorialprogramming
Python에서 주로 numpy로 작업하고 다차원 배열을 만드는 경우 valueerror: 배열 요소를 시퀀스로 설정하는 문제가 발생했을 것입니다.
valueerror란 무엇입니까: 배열 요소를 시퀀스로 설정합니까?
ValueError는 함수가 올바른 유형의 인수를 받았지만 유형 값이 유효하지 않을 때 발생합니다. 이 경우 Numpy 배열이 시퀀스에 없으면 값 오류가 발생합니다.
예제를 보면 numpy 배열은 2차원이지만 나중에는 1차원 배열과도 혼합되어 있으므로 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, in <module>
print(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]]]
값 오류가 발생하는 또 다른 가능성은 다른 유형의 요소가 있는 배열을 만들려고 할 때입니다. 예를 들어, float와 string이 혼합된 배열이 있는 아래 예제를 생각해 보십시오. 이 경우 valueerror: cannot convert string to float가 다시 발생합니다.
# 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, in <module>
print(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 배열로 작업하는 동안 더 많은 사용 사례와 모범 사례를 보려면 아래 예를 확인하십시오.
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: setting an array element with a sequence이 ItsMyCode에 처음 등장했습니다.
Reference
이 문제에 관하여(Python ValueError: 시퀀스가 있는 배열 요소 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/itsmycode/python-valueerror-setting-an-array-element-with-a-sequence-49eh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)