Python就可以用于打包和描述项目的工具,一个令人困惑的历史:这些包括distutils标准库中,distribute,distutils2,和setuptools(也许更多).看来,distribute和distutils2赞成被中止setuptools,这让两个相互竞争的标准.
据我所知,setuptools提供了更多的选项(例如声明依赖项,测试等)distutils,但它没有包含在Python标准库中(但是?).
所述的Python包装用户指南 [ 1 ]现在建议:
使用
setuptools定义的项目和创建源代码分发.
并解释说:
尽管您可以
distutils在许多项目中使用pure ,但它不支持在其他项目上定义依赖项,并且缺少一些便于实际自动填充包提供的包元数据的便利实用程序setuptools.作为标准库之外,setuptools还在不同版本的Python中提供更一致的功能集,并且(不同distutils)setuptools将更新以在所有支持的版本上生成即将推出的"Metadata 2.0"标准格式.即使是那些选择使用的项目
distutils,当pip直接从源代码安装这样的项目时(而不是从预先构建的wheel文件安装),它实际上会使用setuptools而不是使用它来构建项目.
但是,查看各种项目的setup.py文件会发现这似乎不是一个真正的标准.许多软件包仍在使用,distutils而那些支持setuptools经常混合setuptools使用,distutils例如通过执行后备导入:
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
Run Code Online (Sandbox Code Playgroud)
接着尝试找到一种方法来编写可由两者setuptools和两者安装的设置distutils.这通常包括各种容易出错的依赖性检查方法,因为distutils它不支持setup函数中的依赖性.
为什么人们仍然需要额外的努力来支持distutils- 事实setuptools是标准库不是唯一的原因吗? …
import matplotlib.pyplot as pl
%matplot inline
def learning_curves(X_train, y_train, X_test, y_test):
""" Calculates the performance of several models with varying sizes of training data.
The learning and testing error rates for each model are then plotted. """
print ("Creating learning curve graphs for max_depths of 1, 3, 6, and 10. . .")
# Create the figure window
fig = pl.figure(figsize=(10,8))
# We will vary the training set size so that we have 50 different sizes
sizes = np.rint(np.linspace(1, len(X_train), 50)).astype(int) …Run Code Online (Sandbox Code Playgroud) 我已经成功安装了一个库pip install <library-name>.但是当我尝试导入它时,python会提升ImportError: No module named <library-name>.为什么我会收到此错误,如何使用已安装的库?
我从sklearn网页上得到了这个:
a)管道:使用最终估算器进行变换的管道
b)Make_pipeline:根据给定的估算器构造管道.这是Pipeline构造函数的简写.
但是当我必须使用每一个时,我仍然不明白.谁能举个例子?
我试图对Pandas数据帧的各列进行求和,当我在每列中都有NaN时,我得到的总和= 0; 我希望sum = NaN基于文档.这是我得到的:
In [136]: df = pd.DataFrame()
In [137]: df['a'] = [1,2,np.nan,3]
In [138]: df['b'] = [4,5,np.nan,6]
In [139]: df
Out[139]:
a b
0 1 4
1 2 5
2 NaN NaN
3 3 6
In [140]: df['total'] = df.sum(axis=1)
In [141]: df
Out[141]:
a b total
0 1 4 5
1 2 5 7
2 NaN NaN 0
3 3 6 9
Run Code Online (Sandbox Code Playgroud)
pandas.DataFrame.sum文档说"如果整行/列是NA,结果将是NA",所以我不明白为什么"total"= 0而不是指数2的NaN.我错过了什么?
当我运行时conda search -c conda-forge nodejs,我得到:
# Name Version Build Channel
...
nodejs 14.2.0 h2c41780_1 conda-forge
nodejs 14.2.0 h38d8c5a_0 conda-forge
nodejs 14.3.0 h2c41780_0 conda-forge
nodejs 14.4.0 h2c41780_0 conda-forge
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用conda install -c conda-forge nodejs它安装它时,它会尝试安装 6.13.1。做conda install -c conda-forge nodejs==14.4.0也行不通。它一直试图“解决”环境。对于如何解决这个问题,有任何的建议吗?
这可能很容易,但我似乎无法自己解决这个问题.我有两个numpy数组,一个代表x值,另一个代表相应的y值:
x = np.array([-1, 0, 1, 2])
y = np.array([-2, -1, 0, 1])
Run Code Online (Sandbox Code Playgroud)
有没有办法将这两个数组合并在一起(因此更容易读取每个x值的y值),就像一个tupple:
array = [(-1, -2), (0, -1), (1, 0), (2, 1)]
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我有一个TfidfVectorizer矢量化文章集合,然后是特征选择.
vectroizer = TfidfVectorizer()
X_train = vectroizer.fit_transform(corpus)
selector = SelectKBest(chi2, k = 5000 )
X_train_sel = selector.fit_transform(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)
现在,我想存储它并在其他程序中使用它.我不想TfidfVectorizer()在训练数据集上重新运行和选择特征选择器.我怎么做?我知道如何使模型持久使用,joblib但我想知道这是否与使模型持久化相同.
在python中,可以在多个进程之间共享ctypes对象.但是我注意到分配这些对象似乎非常昂贵.
考虑以下代码:
from multiprocessing import sharedctypes as sct
import ctypes as ct
import numpy as np
n = 100000
l = np.random.randint(0, 10, size=n)
def foo1():
sh = sct.RawArray(ct.c_int, l)
return sh
def foo2():
sh = sct.RawArray(ct.c_int, len(l))
sh[:] = l
return sh
%timeit foo1()
%timeit foo2()
sh1 = foo1()
sh2 = foo2()
for i in range(n):
assert sh1[i] == sh2[i]
Run Code Online (Sandbox Code Playgroud)
输出是:
10 loops, best of 3: 30.4 ms per loop
100 loops, best of 3: 9.65 ms per loop …Run Code Online (Sandbox Code Playgroud) 有没有办法打印jupyter/ipython笔记本幻灯片的幻灯片?可以从nbviewer网站(http://nbviewer.ipython.org)进行吗?
我知道我可以打印我的笔记本的pdf,但是当我这样做时,它没有相同的分页符,并且没有跳过我想要跳过的所有代码(例如,我导入的库不是没必要).我想将它作为备份或可打印的讲义.
python ×8
scikit-learn ×2
conda ×1
conda-forge ×1
distutils ×1
joblib ×1
jupyter ×1
matplotlib ×1
node.js ×1
numpy ×1
packaging ×1
pandas ×1
pip ×1
python-3.x ×1
setuptools ×1
tf-idf ×1