skr*_*rat 3 python arrays numpy
假设我有以下数组
test=np.asarray([
[[ 0.26139668, 0.271985 , 0.89647514, 0.10352486],
[ 0.30488212, 0.31384717, 0.84089744, 0.15910256],
[ 0.32112577, 0.32958562, 0.79216727, 0.20783273]],
[[ 0.6017121 , 0.60530397, 0.49432092, 0.50567908],
[ 0.61610247, 0.61954059, 0.49649699, 0.50350301],
[ 0.63149809, 0.63477652, 0.49945702, 0.50054298]],
[[ 0.6017121 , 0.60530397, 0.49432092, 0.50567908],
[ 0.61610247, 0.61954059, 0.49649699, 0.50350301],
[ 0.63149809, 0.63477652, 0.49945702, 0.50054298]],
[[ 0.6017121 , 0.60530397, 0.49432092, 0.50567908],
[ 0.61610247, 0.61954059, 0.49649699, 0.50350301],
[ 0.63149809, 0.63477652, 0.49945702, 0.50054298]]])
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找的结果位于test. 所以基本上我需要test[0][:,0]和test[1][:,0]...最后test[3][:,0]。
我确定这可以在没有 for 循环的情况下完成,或者不?
由于符号[:]应该意味着从头到尾的所有元素,我什至尝试过test[:][:,0]。那没有用。test[:,0][:,0]也好不到哪里去。
那么,for 循环的替代方案是什么?
结果应该是:
[0.26139668, 0.30488212, 0.32112577, 0.6017121, 0.61610247, 0.63149809,
0.6017121, 0.61610247, 0.63149809,0.6017121, 0.61610247, 0.63149809]
Run Code Online (Sandbox Code Playgroud)
或者任何类似的东西。(我只需要整个数组中的那些数字)。
您有一个 3D 数组,因此只需将 0 传递给第三个轴:
In [9]: test[:, :, 0]
Out[9]:
array([[ 0.26139668, 0.30488212, 0.32112577],
[ 0.6017121 , 0.61610247, 0.63149809],
[ 0.6017121 , 0.61610247, 0.63149809],
[ 0.6017121 , 0.61610247, 0.63149809]])
Run Code Online (Sandbox Code Playgroud)
如果您想将它们全部放在一个数组中,您可以只ravel使用切片:
In [11]: test[:, :, 0].ravel()
Out[11]:
array([ 0.26139668, 0.30488212, 0.32112577, 0.6017121 , 0.61610247,
0.63149809, 0.6017121 , 0.61610247, 0.63149809, 0.6017121 ,
0.61610247, 0.63149809])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4822 次 |
| 最近记录: |