我试图编写一个仅应用于numpy数组中特定列的函数,并将输入值替换为新计算的值。
例如,我的数组看起来像
array = np.arange(1,28).reshape(3,3,3)
是:
[[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]]
[[10 11 12]
[13 14 15]
[16 17 18]]
[[19 20 21]
[22 23 24]
[25 26 27]]]
现在我想将我的函数应用于内部数组的第一列中的值(1,4,7,10,13,16,19,22,25)
如果我将我的功能定义为
def myfunc(x):
return x * x
我希望获得以下输出(不是仅包含切片值的单独数组)
[[[ 1 2 3]
[ 16 5 6]
[ 49 8 9]]
[[100 11 12]
[169 14 15]
[256 17 18]]
[[361 20 21]
[484 23 24]
[625 26 27]]]
我阅读了几个教程等,建议将数组切换为array[:,:,0]
以获取第一列,但这种方法会对新数组进行计算,并且不会对原始元素进行操作阵列。我想,我可以使用原始数据对新生成的数组进行vstack。但是有更好的解决方案吗?
非常感谢你!