我有一个numpy形状的阵列[12,8,5,5]。我想修改每个元素的第3维和第4维的值。
例如
<div class="has-parent" style="padding-left: 1em;">
Component 6
</div>
输出:
import numpy as np
x = np.zeros((12, 80, 5, 5))
print(x[0,0,:,:])
修改值:
[[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]]
输出:
y = np.ones((5,5))
x[0,0,:,:] = y
print(x[0,0,:,:])
我可以使用两个[[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]]
循环修改所有x[i,j,:,:]
。但是,我想知道是否有任何pythonic方式来做它而不运行两个循环。只是好奇地知道:)
更新
实际使用案例:
for
注意:combined_weights的尺寸i,j可以变化。此列表中有大约200个元素,具有不同的i和j维度,但第3和第4维度始终相同(即5x5)。
我只是想知道我是否可以使用转置值更新combine_weights [:,:,5,5]元素而不运行2 for循环。
感谢。
答案 0 :(得分:2)
简单地做 -
dict_weights[each_layer] = combined_weights[each_layer][...,::-1,::-1]