Python 배열 값 오류

Zeeshan Afridi 2023년6월21일
  1. Python에서 ValueError: only 2 non-keyword arguments registered 해결
  2. ValueError: 배열 요소를 시퀀스로 설정 해결
  3. 배열 및 값의 일치하는 기본 데이터 유형
Python 배열 값 오류

Python의 값 오류는 함수가 올바른 유형의 인수를 가져오지만 해당 유형의 값이 올바르지 않을 때 발생합니다. NumPy 배열에 둘 이상의 요소가 있는 경우 또 다른 오류가 발생하여 오류가 발생합니다.

이 문서에서는 구문 오류와 해결 방법에 대해 설명합니다.

Python에서 ValueError: only 2 non-keyword arguments registered 해결

아래 예에서 NumPy 배열은 2차원이지만 이후에는 1차원 배열도 혼합했습니다. Python은 이를 비균질한 모양으로 인식하여 배열의 구조가 변동하고 따라서 Python에서 값 오류가 발생함을 나타냅니다.

코드 예:

import numpy as np

print(np.array([1, "English"], [2, "Spanish"], [3, "German"], dtype=object))

출력:

ValueError: only 2 non-keyword arguments accepted

동일한 차원으로 배열을 생성하여 이 오류를 해결하려면 배열에 동일한 요소가 있어야 합니다.

코드 예:

import numpy as np

print(np.array([[1, "English"], [2, "Spanish"], [3, "German"]], dtype=object))

출력:

[[1 'English']
[2 'Spanish']
[3 'German']]

ValueError: 배열 요소를 시퀀스로 설정 해결

라이브러리 NumPy를 사용하여 다차원 배열을 만들 때 때때로 ValueError가 발생합니다. 시퀀스 오류로 배열 요소를 설정할 때 발생합니다.

코드 예:

import numpy

arrayeven = [2, 4, 6, [8, [10, 12]]]
np_array = numpy.array(arrayeven, dtype=int)

출력:

ValueError: setting an array element with a sequence

이 오류를 해결하기 위해 모든 데이터 유형(공통 데이터 유형)을 지원하는 데이터 유형을 사용할 수 있습니다. 다음 예에서는 dtype=int 대신 dtype=object를 사용했습니다.

코드 예:

import numpy

arrayeven = [2, 4, 6, [8, [10, 12]]]
np_array = numpy.array(arrayeven, dtype=object)
print(np_array)

출력:

[2 4 6 list([8, [10, 12]])]

배열 및 값의 일치하는 기본 데이터 유형

아래 예제에서는 문자열 데이터를 받는 배열의 요소로 배열을 할당하여 오류가 발생합니다.

코드 예:

import numpy

array = ["meeting", "the", "is", "at", "10pm"]
newarray = numpy.array(array, dtype=str)
newarray[1] = ["the", "meeting", "is", "at", "10pm"]
print(newarray)

출력:

ValueError: setting an array element with a sequence

값과 배열의 데이터 유형을 일치시켜 이 오류를 해결할 수 있습니다. 이 문제를 수정하고 값을 배열 요소로 할당할 수 있습니다.

코드 예:

import numpy

array = ["meeting", "the", "is", "at", "10pm"]
newarray = numpy.array(array, dtype=str)
Variable = ["the", "meeting", "is", "at", "10pm"]
if newarray.dtype == type(Variable):
    newarray[1] = Variable
else:
    print(" Type of value and newarray is not same ")
print(newarray)

출력:

Type of value and newarray is not same
['meeting' 'the' 'is' 'at' '10pm']

라이브러리 NumPy를 사용하면 때때로 값 오류가 발생합니다. 함수가 올바른 인수 유형을 전달할 수 있지만 해당 유형의 값이 올바르지 않은 경우에 발생합니다.

위에서 언급한 방법을 사용하여 배열 값 오류를 수정할 수 있습니다.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

관련 문장 - Python Error