numpy를 스트레스없이 사용! (오류 「AttributeError: 'float' object has no attribute 'sin'」의 해석(대처?))

목적



numpy를 스트레스없이 사용!
파이썬으로 계산 등을 하는 경우에는 numpy가 자주 사용된다. 그 때문에, numpy 관련의 에러를 만나는 일도 적지 않다.
오류를 일찍 해결하려면 조금이라도 이해 수준을 높일 필요가 있습니다.
뭐든지, 고집하고,,,, 이해를 깊게 한다.

여기서 다루는 오류는 다음과 같습니다.
AttributeError: 'float' object has no attribute 'sin'

어떤 장면에서 나오는가 하면, 예를 들면, 이하.
>>>
>>> import numpy as np
>>> a = np.array([1.1, 2.2],dtype=object)
>>> np.sin(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'float' object has no attribute 'sin'
>>>

이 오류를 해결하는 이유는
오류의 의미를 모른다.
그렇게 생각하기 위해.
'float' 객체가 sin을 가지지 않는다
라고 말해지고 있지만, 그런 처리는, 의뢰하지 않고. . . .

검토 환경



Name: numpy
버전: 1.16.4

오류 설명



이 에러에 대해서는, 이하의 기사가 참고가 된다.

여기서 보고자는

Many NumPy methods fail if an array has dtype object, and produce a misleading error message.

타력으로 일본어로 하면(Google 번역(엄마))

배열에 dtype 객체가 있으면 많은 NumPy 메서드가 실패하고 오해를 초래하는 오류 메시지가 생성됩니다.

라고 주장되고 있다.
⇒그대로라고 생각한다.

이 사이트에서의 상호 작용의 결론은 잘 모릅니다.
어쨌든,
numpy측도
오류 메시지가 적당하지 않음
것은 인정하는 것 같습니다.
치료하고 있는 것처럼 읽을 수 있지만. . . . 낫지 않은 것 같아요.

오류를 해결하는 방법



오류를 해결하는 방법은 원래 무엇을하고 싶은지에 달려 있지만,
경위상, dtype=object일 필요가 있으면,
sin을 계산하기 전에 astype으로 캐스팅
등이 좋다고 생각한다.
>>> a = np.array([1.1, 2.2],dtype=object)
>>> np.sin(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'float' object has no attribute 'sin'
>>> np.sin(a.astype(np.float64))
array([0.89120736, 0.8084964 ])
>>>

요약



경미하게, numpy에 상세하게 되었다.
numpy는 깊기 때문에 아직 오차의 범위라고 생각하지만.

관련(본인)



영어와 일본어를 모두 사용하여 파이썬을 정중하게 배우십시오.

미래



numpy, 배우자.
코멘트 등 있으면 부탁드립니다.

좋은 웹페이지 즐겨찾기