강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이주호님의 프로필 이미지
이주호

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

파이썬기반 머신러닝을 위한 SW의 설치

넘파이 오류

작성

·

23

0

안녕하세요.

 

아나콘다 프롬프트에서 가상환경을 'mystudy' 라는 이름으로 설치하고, 파이썬을 3.9버전으로 다운 그레이드하고, 사이킷런을 1.0.2, lightgbm을 3.3.2 버전으로 강의처럼 다운 받았습니다.

그러나 사이킷런 버전을 확인하려고 하면 아래와 같은 오류가 발생합니다.

--------------------------------------------------------------------------ValueError Traceback (most recent call last)

Cell In[2], line 1----> 1 import sklearn 3 print(sklearn.__version__)

 

File ~\anaconda3\envs\mystudy\lib\site-packages\sklearn\__init__.py:82 80 from . import distributorinit # noqa: F401 81 from . import __check_build # noqa: F401---> 82 from .base import clone 83 from .utils._show_versions import show_versions 85 all = [ 86 "calibration", 87 "cluster", (...) 128 "show_versions", 129 ]

 

File ~\anaconda3\envs\mystudy\lib\site-packages\sklearn\base.py:17 15 from . import version 16 from ._config import get_config---> 17 from .utils import IS32BIT 18 from .utils._tags import ( 19 DEFAULTTAGS, 20 safetags, 21 ) 22 from .utils.validation import check_X_y

 

File ~\anaconda3\envs\mystudy\lib\site-packages\sklearn\utils\__init__.py:23 20 import numpy as np 21 from scipy.sparse import issparse---> 23 from .murmurhash import murmurhash3_32 24 from .class_weight import compute_class_weight, compute_sample_weight 25 from . import _joblib

 

File sklearn\utils\murmurhash.pyx:1, in init sklearn.utils.murmurhash()ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

넘파이 버전이 낮아서 발생하는 오류라고 하는데, 제가 방법을 찾아봐도 해결이 안되네요 이 부분은 어떻게 하면 될까요?


답변 2

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

먼저 아래를 수행하셔서 현재 설치된 numpy 버전을 알 수 있을까요?

import numpy as np

print(np.__version__)

 

감사합니다.

이주호님의 프로필 이미지
이주호
질문자

안녕하세요.

pip uninstall numpy -y

pip install numpy==1.23.5

위 코드로 가상 환경 내에 넘파이를 다시 설치했습니다.

일단 사이킷런 버전 확인 코드는 실행되긴 했는데, 앞으로 실습에서 문제가 없을지요?

 

감사합니다.

권 철민님의 프로필 이미지
권 철민
지식공유자

numpy 1.23이면 큰 문제 없으십니다.

pandas가 update되면서 실습 코드 중 살짝 일부가 안될 수는 있습니다만, 실습 수행하시는데 큰 문제는 아닐겁니다. 잘 안되시는 부분 있으면 여기에 글 남겨 주십시요.

즐강 하십시요.

0

안녕하세요, 인프런 AI 인턴입니다.

이주호님이 언급하신 오류는 보통 넘파이와 다른 라이브러리 간의 호환성 문제로 인해 발생합니다. 특히, 사이킷런과 넘파이 간의 버전 차이 때문에 발생할 수 있으며, 이 경우에는 주로 넘파이를 업그레이드하여 해결할 수 있습니다.

오류 메시지에서 “numpy.dtype size changed, may indicate binary incompatibility”라는 내용은 현재 사용 중인 넘파이 버전과 사이킷런이 호환되지 않는다는 경고입니다. 이를 해결하려면 아래의 단계를 시도해 보세요:

해결 방법:

  1. 넘파이 업그레이드
    아나콘다 프롬프트에서 가상 환경 'mystudy'를 활성화한 후, 다음 명령어로 넘파이를 최신 버전으로 업그레이드하세요:
   conda activate mystudy
   pip install --upgrade numpy
  1. 사이킷런 및 다른 라이브러리와의 호환성
    모든 라이브러리가 호환되어 있는지 확인하려면 사이킷런과 함께 설치된 라이브러리 정보를 아래 명령어로 확인하세요:
   pip list
  1. 환경 초기화
    여전히 문제가 발생한다면 새로운 가상 환경을 생성하여 모든 라이브러리를 다시 설치하는 방법도 있습니다:
   conda create -n newenv python=3.9
   conda activate newenv
   pip install scikit-learn==1.0.2
   pip install lightgbm==3.3.2
   pip install numpy

관련 질문으로는 다음 게시물을 참조하실 수 있습니다:

이 방법으로 문제가 해결되길 바라며, 추가적인 문제가 있으시거나 다른 문의가 있으시면 추가로 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이주호님의 프로필 이미지
이주호
질문자

넘파이를 업그레이드 했는데도, 계속 오류가 발생합니다.

이주호님의 프로필 이미지
이주호

작성한 질문수

질문하기