嘿伙计们,我想知道在Python/Numpy中获得"n"矩阵的最大值元素的最佳最佳/优化方法.
例如:
import numpy as np
matrices=[np.random.random((5,5)) for i in range(10)]
# the function np.maximum from numpy only works for two matrices.
max_matrix=np.maximum(matrices[0],matrices[1])
max_matrix=np.maximum(*matrices) # <- error
Run Code Online (Sandbox Code Playgroud)
你会如何克服这个问题?
我想在其他计算机上使用这个分类器,而不必再次训练它.我曾经用cPickle从scikit中保存了一些分类器.对LIBSVM做同样的事情,它给了我一个"ValueError:包含指针的ctypes对象无法被pickle".
我正在使用LibSVM 3.1和Python 2.7.3.
谢谢
from libsvm.svm import *
from libsvm.svmutil import *
import cPickle
x = [[1, 0, 1], [-1, 0, -1]]
y = [1, -1]
prob = svm_problem(y, x)
param = svm_parameter()
param.kernel_type = LINEAR
param.C = 10
m = svm_train(prob, param)
labels_pred, acc, probs = svm_predict([-1, 1], [[1, 1, 1], [0, 0, 1]], m)
print labels_pred, acc, probs
import ipdb; ipdb.set_trace()
filename='libsvm-classif.pkl'
fid = open(filename, 'wb')
cPickle.dump(m, fid)
fid.close()
fid = open(filename, 'rb')
m = cPickle.load(fid)
labels_pred, …
Run Code Online (Sandbox Code Playgroud) 我已经运行了一些算法,并希望对结果进行一些统计分析.我有两个矢量与错误率的平均值.
使用R,使用下面的行我会得到一切.
t.test(methodresults1,methodresults2,var.equal=FALSE,paired=FALSE,alternative="less")
Run Code Online (Sandbox Code Playgroud)
由于我使用的是Python,我想使用Rpy2项目.
我试过了:
import rpy2.robjects as R
# methodresults1 and methodresults2 are numpy arrays.
# kolmogorov test
normality_res = R.r['ks.test'](R.FloatVector(methodresults1.tolist()),'pnorm',mean=R.FloatVector(methodresults1.mean().tolist()),sd=R.FloatVector(methodresults1.std().tolist())))
# t-test
res = R.r['t.test'](R.FloatVector(methodresults1.tolist()),R.FloatVector(methodresults2.tolist()),alternative='two.sided',var.equal=FALSE,paired=FALSE)
res.rx('p.value')[0][0]
res.rx('statistic')[0][0]
res.rx('parameter')[0][0]
Run Code Online (Sandbox Code Playgroud)
我无法进行这两项测试.
我还发现t-test的问题在于var.equal语句,它给了我一个* SyntaxError:关键字不能是表达式(,第1行).
额外的问题:有没有更好的方法来使用numpy和Rpy2?