#python #scikit-learn #module #package
#python #scikit-learn #модуль #пакет
Вопрос:
Я действительно борюсь с этим. Я пытаюсь открыть модули sklearn, чтобы просмотреть установленные версии, поскольку у меня возникли проблемы с пакетами и кодом. В частности, xgboost
, from sklearn import impute.KNNImputer
и другие. Моя система:
System:
python: 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]
executable: C:ProgramDataAnaconda3python.exe
machine: Windows-10-10.0.18362-SP0
Python deps:
pip: 19.2.3
setuptools: 41.4.0
sklearn: 0.21.3
numpy: 1.16.5
scipy: 1.3.1
Cython: 0.29.13
pandas: 0.25.1
И это не так просто обновить, поскольку я работаю с Office notebook, поэтому у меня нет разрешения на обновление / установку пакетов по моему желанию. Итак:
-Как мне получить список подпакетов и версий sklearn? Хотелось бы увидеть все возможности / пакеты и функции:
from sklearn.subpackage import function1, function2 # this is my definition os subpackage and function, correct me if I'm wrong
from sklearn.subpackage2 import function10, function20, function30
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.pipeline import FeatureUnion, make_pipeline
-
Получив этот список выше, узнаю ли я, какая
from sklearn import impute.KNNImputer
такая же / похожая функция была для более старой версии sklearn? Здесь вы можете видеть, чтоsklearn.impute.KNNImputer
это для0.22
версии sklearn, и у меня есть0.21
. (Поэтому я готов найти в этом списке аналогичную функцию) -
То же самое
xgboost
, поскольку это пакет, установленный отдельно, некоторые из них должны бытьsklearn.xgboost
установлены по умолчанию в sklearn, где, используя приведенный выше список, я смогу узнать, какую функцию / модуль xgboost я смогу использовать.
Итак, я ищу функцию / метод, который выполняет что-то вроде:
sklearn.list_subpackages()
output: package (version 1.2), package2 (version 2.3), model_selection (version 5.1), metrics (version 10.1), pipeline (version 2.1)
package2.list_functions()
output: function10, function20, function30
model_selection.list_functions()
output: train_test_split
Есть предложения?
Комментарии:
1. вы можете запустить
conda prompt
?2. если вы имеете в виду терминал Anaconda, да, я могу
Ответ №1:
Вам нужно перейти по каталогу пакетов python, открыть папку sklearn, найти файл подпакета, щелкнуть по нему правой кнопкой мыши и отредактировать его с помощью sublime text или другого текстового редактора или ide …. подождите, не редактируйте! Большинство модулей и пакетов имеют номер версии и описание в них либо в виде строк, либо в виде строк с комментариями, таких как:
"""
This is the subpackage, version number blah blah and more information..
"""
from example import example
но вы можете хранить их в переменных подпакетов, например, смотрите этот __init__.py
файл из keras (просто посмотрите последнюю строку), код внутри выглядит так:
try:
from tensorflow.keras.layers.experimental.preprocessing import RandomRotation
except ImportError:
raise ImportError(
'Keras requires TensorFlow 2.2 or higher. '
'Install TensorFlow via `pip install tensorflow`')
from . import utils
from . import activations
from . import applications
from . import backend
from . import datasets
from . import engine
from . import layers
from . import preprocessing
from . import wrappers
from . import callbacks
from . import constraints
from . import initializers
from . import metrics
from . import models
from . import losses
from . import optimizers
from . import regularizers
# Also importable from root
from .layers import Input
from .models import Model
from .models import Sequential
__version__ = '2.4.3'
Как вы можете видеть в последней строке.. __version__ = '2.4.3'
вы можете сделать то же самое с нужным подпакетом, прочитать из строки комментария и создать переменную версию, сохранить номер версии, затем вы можете легко получить доступ к переменной подпакетов в вашей функции после их импорта.
Комментарии:
1. как вы находите папку sklearn? Я установил его с помощью anaconda, и когда я просматриваю его папку, там около 40 папок и вложенных папок, очень похожих на «пакеты», «библиотека» и т.д.