일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트
- 데이터과학
- 컴퓨터과학
- 네트워크보안
- 사이버보안
- 알고리즘
- 데이터구조
- 프로그래밍
- 데이터베이스
- 자료구조
- 인공지능
- 코딩
- 2
- 컴퓨터공학
- 소프트웨어
- 빅데이터
- 컴퓨터비전
- 소프트웨어공학
- 프로그래밍언어
- Yes
- 웹개발
- 버전관리
- 머신러닝
- 데이터분석
- 클라우드컴퓨팅
- 파이썬
- 네트워크
- I'm Sorry
- 딥러닝
- 보안
- Today
- Total
스택큐힙리스트
파이썬: 변수가 배열인지 스칼라인지 식별하는 방법 본문
나는 인수 # $! & ^ # *! $ & 를 가진 함수가 있습니다. 이 함수를 스칼라 50 o 또는 배열 [0, 10, 20, 30] . 와 함께 호출하고 싶습니다. 함수 내에서 # $! & ^ # *! $ & 의 길이 또는 스칼라인지 벡터인지 어떻게 식별 할 수 있을까요?
저는 이것을 시도해봤어요.
>>> N=[2,3,5]
>>> P = 5
>>> len(N)
3
>>> len(P)
Traceback (most recent call last):
File
TypeError: object of type 'int' has no len()
>>>
보시는 것처럼, 배열이 아니기 때문에 P에 len을 적용할 수 없습니다. 파이썬에서는 isarray 또는 isscalar과 같은 것이 있나요?
감사합니다
답변 1
>>> import collections.abc
>>> isinstance([0, 10, 20, 30], collections.abc.Sequence)
True
>>> isinstance(50, collections.abc.Sequence)
False
참고: # $$ ## *! * $ &는 클래스의 튜플도 지원합니다. # $! @ #@ * #$ &를 확인해야하며, 피해야하며 필요하지 않습니다.
당신은 not isinstance(x, (str, unicode))도 확인하길 원할 수 있습니다.
@2080와 here에서 지적한 바에 따르면 이것은 numpy 배열에 대해서는 작동하지 않습니다. 예를 들면.
>>> import collections.abc
>>> import numpy as np
>>> isinstance((1, 2, 3), collections.abc.Sequence)
True
>>> isinstance(np.array([1, 2, 3]), collections.abc.Sequence)
False
그 경우에는 @jpaddison3으로 대답을 시도해볼 수 있습니다.
>>> hasattr(np.array([1, 2, 3]), __len__)
True
>>> hasattr([1, 2, 3], __len__)
True
>>> hasattr((1, 2, 3), __len__)
True
하지만, 주석에서 언급한 것처럼, 이것도 완벽하지는 않으며, 사전을 시퀀스로 잘못 분류할 수 있습니다. 반면에 isinstance 와 같은 것은 올바르게 분류합니다.
>>> hasattr({a: 1}, __len__)
True
>>> from numpy.distutils.misc_util import is_sequence
>>> is_sequence({a: 1})
True
>>> isinstance({a: 1}, collections.abc.Sequence)
False
당신은 필요에 따라 isinstance에 더 많은 유형을 추가하여 이와 유사한 솔루션을 사용자 정의할 수 있습니다.
>>> isinstance(np.array([1, 2, 3]), (collections.abc.Sequence, np.ndarray))
True
>>> isinstance([1, 2, 3], (collections.abc.Sequence, np.ndarray))
True
답변 2
당신이 파이썬에서 배열이나 스칼라인 변수를 식별하려면 어떻게 해야 할까요? 이 문제를 해결하기 위해서는 몇 가지 기술적인 지식이 필요합니다. 이 글에서는 파이썬에서 배열과 스칼라 변수를 쉽게 식별하는 방법에 대해 설명하겠습니다.파이썬의 변수는 데이터 타입에 따라 스칼라인지, 배열인지 결정됩니다. 스칼라 변수는 하나의 값만 가질 수 있으며, 배열은 여러 개의 값을 가질 수 있습니다. 예를 들면, 스칼라 변수 'x'는 1 이라는 값을 가질 수 있지만, 배열 변수 'y'는 [1, 2, 3]과 같이 여러 개의 값을 가질 수 있습니다.
파이썬에서 변수의 타입을 구분하기 위해서는 'type()' 함수를 사용합니다. 이 함수는 변수의 데이터 타입을 알려줍니다. 스칼라 변수의 경우, 'int', 'float', 'bool', 'str' 등의 데이터 타입이 있습니다. 배열 변수의 경우, 'list', 'tuple', 'set', 'dict' 등의 데이터 타입이 있습니다. 따라서, 'type()' 함수를 사용하여 변수의 데이터 타입을 확인하는 것이 스칼라 변수와 배열 변수를 쉽게 구분할 수 있는 가장 간단한 방법입니다.
또한, 배열 변수의 경우, 'len()' 함수를 사용하여 배열의 길이를 확인할 수 있습니다. 이 함수는 배열에 포함된 요소의 수를 반환합니다. 따라서, 배열 변수의 길이가 1인 경우, 해당 변수가 스칼라 변수인 것으로 간주할 수 있습니다.
마지막으로, 파이썬에서는 'isinstance()' 함수를 사용하여 변수가 특정 데이터 타입에 속하는지 여부를 확인할 수 있습니다. 이 함수는 변수와 데이터 타입을 인자로 받아 변수의 데이터 타입이 해당 데이터 타입에 속하는지 여부를 반환합니다. 따라서, 'isinstance()' 함수를 사용하여 변수의 데이터 타입이 'list'나 'tuple'과 같은 배열 변수 타입인지 확인할 수 있습니다.
이와 같은 방법을 사용하여 파이썬에서 배열과 스칼라 변수를 쉽게 식별할 수 있습니다. 변수의 데이터 타입을 확인하거나, 변수의 길이를 확인하거나, 'isinstance()' 함수를 사용하여 데이터 타입을 확인하는 등의 방법을 사용하여 변수의 타입을 찾아내면 됩니다. 이러한 방법을 사용하여 파이썬에서 데이터를 처리하는 데 필요한 선행 지식을 습득하고, 데이터 관리에 대한 이해도를 높일 수 있습니다.