일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 컴퓨터비전
- 파이썬
- 자료구조
- 데이터베이스
- 자바스크립트
- 빅데이터
- 사이버보안
- 데이터분석
- I'm Sorry
- 소프트웨어
- 컴퓨터공학
- 컴퓨터과학
- 네트워크
- 웹개발
- 보안
- 코딩
- 프로그래밍언어
- Yes
- 머신러닝
- Today
- Total
스택큐힙리스트
NumPy 배열들을 원소별로 비교하여 동등성 검사 본문
두 NumPy 배열을 동등하게 비교하는 가장 간단한 방법은 무엇인가요 (동등성이 정의된 대로 A = B이면 모든 인덱스 i에 대해 #$ *! ^ @! $$ &)?
단지 ==를 사용하면 부울 배열이 반환됩니다.
>>> numpy.array([1,1,1]) == numpy.array([1,1,1])
array([ True, True, True], dtype=bool)
이 배열의 요소를 and 하여 배열이 같은지 여부를 판정해야할까요? 아니면 더 간단한 방법이 있을까요?
답변 1
(A==B).all()
배열의 모든 값이 참인지 테스트하십시오. (A == B)
참고: 당신은 아마도 A.shape == B.shape처럼 A와 B 모양도 테스트하고 싶을 수도 있습니다.
특수한 경우와 대안들 (dbaupp의 대답과 yoavram의 댓글에서)
그것은 주목해야 할 점입니다.
이 솔루션은 특정한 경우에 이상한 동작을 할 수 있습니다. 만약 A 또는 B 중 하나가 비어 있고, 나머지 하나에 하나의 요소만 들어있다면, True 를 반환합니다. 어떤 이유에서인지, #A==B 비교는 빈 배열을 반환하며, #all 연산자는 True 를 반환합니다.
또 다른 위험은 A와 B가 동일한 모양이 아니고 브로드캐스트가 불가능하면이 방법은 오류를 발생시킬 수 있다는 것입니다.
결론적으로, 만약 A와 B 모양에 대한 의심이 있거나 그냥 안전하게 하려면 전문 기능 중 하나를 사용하세요.
np.array_equal(A,B) # test if same shape, same elements values
np.array_equiv(A,B) # test if broadcastable shape, same elements values
np.allclose(A,B,...) # test if same shape, elements have close enough values
답변 2
두 개의 NumPy 배열을 요소별로 동등성을 비교하는 방법NumPy는 파이썬에서 과학 계산을 위한 핵심 라이브러리 중 하나입니다. NumPy 배열은 파이썬의 기본 배열보다 강력한 기능과 성능을 제공합니다. 때문에 NumPy 배열을 비교할 일이 많이 생길 수 있습니다. NumPy 배열은 요소 단위로 비교 가능합니다. 따라서 두 개의 NumPy 배열이 요소별로 동등한지 비교하는 방법에 대해서 알아보겠습니다.
NumPy 배열의 동등성을 비교하는 경우, 일반적으로 == 연산자를 사용합니다. 이 연산자는 두 개의 배열 요소가 동일한 경우 True를 반환합니다. 따라서 두 배열의 요소가 모두 같은 경우 동등한 것으로 판단할 수 있습니다.
예를 들어, 다음과 같은 두 개의 NumPy 배열이 있다고 가정해보겠습니다.
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([1, 2, 3])
```
이 경우, 두 배열을 비교하면 다음과 같은 결과를 얻을 수 있습니다.
```python
print(a == b)
# 출력: [True True True]
```
위의 결과에서 볼 수 있듯이, 두 배열 모두 요소가 동일하므로 True를 반환합니다.
그러나, 배열의 형태가 다른 경우에는 요소 단위로 비교할 수 없습니다. 따라서 배열 형태가 같은지 확인한 후, 요소를 비교해야 합니다.
예를 들어, 다음과 같은 두 개의 NumPy 배열이 있다고 가정해보겠습니다.
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([[1, 2, 3], [4, 5, 6]])
```
이 경우, 두 배열을 비교하면 다음과 같은 결과를 얻을 수 있습니다.
```python
print(a == b)
# 출력: [[ True True True]
# [False False False]]
```
위의 결과에서 볼 수 있듯이, 두 배열의 형태가 다르기 때문에 요소 단위로 비교할 수 없습니다. 따라서 두 배열의 형태가 같지 않다는 결과가 반환됩니다.
따라서, NumPy 배열의 동등성을 요소 단위로 비교하는 방법은 간단합니다. 일반적으로 == 연산자를 사용하면 됩니다. 그러나, 배열의 형태가 같은지 확인한 후 요소를 비교해야 합니다.