小编xue*_*liu的帖子

在python中,下划线参数在函数中意味着什么

例如,我读了一个代码:

def parse_doc(self, _, doc):
Run Code Online (Sandbox Code Playgroud)

下划线"_"是什么意思?

python

13
推荐指数
2
解决办法
4037
查看次数

在scikit学习中,如何处理混合了数值和名义价值的数据?

我知道scikit-learn中的计算是基于NumPy所以一切都是矩阵或数组.

该包如何处理混合数据(数值和名义值)?

例如,产品可以具有属性"颜色"和"价格",其中颜色是名义上的,价格是数字.我注意到有一个名为'DictVectorizer'的模型来计算名义数据.例如,两个产品是:

products = [{'color':'black','price':10}, {'color':'green','price':5}]
Run Code Online (Sandbox Code Playgroud)

而'DictVectorizer'的结果可能是:

[[1,0,10],
 [0,1,5]]
Run Code Online (Sandbox Code Playgroud)

如果属性'color'有许多不同的值,则矩阵将非常稀疏.长特征会降低某些算法的性能,例如决策树.

有没有办法使用标称值而无需创建虚拟代码?

python mixed machine-learning data-mining scikit-learn

12
推荐指数
1
解决办法
1919
查看次数

通过置换来避免matlab脚本中的'for'循环

我有一个代码如下:

Ne = 100;
H = rand(Ne,Ne);
g = zeros(Ne,1);

for e =1:Ne
    hue = H(:,e);
    ss1 =  bsxfun(@times, hue', hue) .* M;   % M is a Ne*Ne matrix
    g(e) = sum(ss1(:));
end
Run Code Online (Sandbox Code Playgroud)

当Ne> 1000时,它运行得非常慢.

我阅读了matlab文档,并找到了permute函数是一种可能的加速方法.但我试了整整一天却失败了.

这是我的代码,我不知道出了什么问题.

C = permute(bsxfun(@times, permute(H, [1 3 2]), permute(H', [1 3 2])), [1 3 2]);
g = sum(sum(C))
Run Code Online (Sandbox Code Playgroud)

matlab bsxfun

2
推荐指数
1
解决办法
232
查看次数