正如 comments 中所述,您需要解包索引.
从python3.11开始,您可以使用:
m[:, *din]
输出:
array([[ 8.61622699e-02, -1.46919069e-01, -9.37771599e-02,
1.94698315e-03],
[ 1.60933774e-01, -2.77077615e-02, -1.74135776e-01,
-1.72223723e-01],
[-1.54804225e-01, 1.08146714e-01, 2.51844877e-01,
-2.91622737e-02],
[ 1.22213756e-02, 1.59703456e-02, -1.41757563e-01,
-5.02470362e-02],
[ 1.49296012e-01, -9.60208199e-03, -4.82484338e-01,
1.58012139e-02],
[-3.09847219e-01, -1.13959996e-01, -6.71019475e-01,
3.17810448e-01],
[ 2.04860543e-04, -2.16311908e-01, 1.39098046e-01,
-1.40102017e-01],
[-5.82402679e-02, 2.55831587e-01, -3.74597159e-01,
1.23205316e-01],
[-1.23942861e-01, 1.40365188e-02, -2.16884333e-02,
-2.08800511e-02],
[ 1.02934324e-01, -1.81953630e-01, 2.35600757e-01,
-2.29315601e-01]])
然而,这种语法在旧的Python版本中不支持,在这种情况下,你可以构建一个元组:
m[tuple((slice(None), *din))]
# or
m[(slice(None), *din)]