【发布时间】:2016-03-23 09:28:20
【问题描述】:
我以前用 R 编写代码,现在试图找到进入 python 的方法。我大部分时间都在使用列表,但现在我需要用 numpy 完成任务。不知何故,与 R 相比,这似乎完全不同,而且大多数时候我遇到了广播不同形状的输入数组的问题。也许如果我能弄清楚下面的代码出了什么问题,我就能更好地理解 numpy 试图做什么以及如何处理数组的某些部分。
import numpy as np
a = np.array((1,2,3,4))
b = np.array((2,4,6,8))
c = np.array((3,6,9,12))
myArray = np.asarray((a,b,c))
现在我想在 myArray 上附加每一行的平均值。我试过这个:
for i in range(myArray.shape[0]):
myArray[i] = np.append(myArray[i,:], np.mean(myArray[i,:]))
我得到“无法将输入数组从形状 (5) 广播到形状 (4)。我想,它试图将新项目压缩到大小为 4 的旧数组中,而我想 追加 它。我该怎么做?
我想要的输出如下所示:
[In] print myArray
[Out] [[1.0 2.0 3.0 4.0 2.5]
[2.0, 4.0, 6.0, 8.0, 5.0]
[3.0, 6.0, 9.0, 12.0, 7.5]]
【问题讨论】:
标签: arrays python-2.7 numpy