我正在尝试将MATLAB中的以下代码转换为Python。
y = data(1:60000,6);
b = zeros(size(y));
for i = 1:size(y,1),
ymean = mean(y(i,:));
y(i,:) = y(i,:) - ymean;
感谢您转换代码的任何帮助。
这是我迄今为止开发的代码,
b = zeros(size(z))
for i in range(1,size(z)):
ymean = numpy.mean(y(i,:))
y(i,:) = y(i,:) - ymean
答案 0 :(得分:3)
欢迎使用python!
在python中,我们希望代码简单,简洁,高效。特别是当使用numpy时,你应该打破你可能习惯用其他语言思考的for循环模型。
此外,我们从0开始编制索引,就像绝大多数语言一样。如果您首先解释您试图解决的问题,那么大多数社区可能会更加感激,而不是要求我们翻译MATLAB代码。
幸运的是,numpy很漂亮,我强烈要求你告诉你上面写的代码有多简单。具体来说,您要从该列中的每个元素中减去每列的平均值。
注意这是多么容易:
centered_matrix = numpy.subtract(y, numpy.mean(y, axis=0))
你抓到了吗?在numpy中,你真的不应该使用for循环。你可以说出你的意思,它的作用非常好。这里希望你再也不用回MATLAB了。
如果您有任何问题,请与我们联系。