(我不确定标题的正确性)
我有一个numpy.array
f
如下:
# id frame x y z
我想要做的是提取一些特定的轨迹id
。例如id==1
,我得到:
f_1 = f[ f[:,0]==1 ]
并得到
array([[ 1. , 55. , 381.51 , -135.476 , 163.751 ],
[ 1. , 56. , 369.176 , -134.842 , 163.751 ],
[ 1. , 57. , 357.499 , -134.204 , 163.751 ],
[ 1. , 58. , 346.65 , -133.786 , 163.751 ],
[ 1. , 59. , 336.602 , -133.762 , 163.751 ],
[ 1. , 60. , 326.762 , -135.157 , 163.751 ],
[ 1. , 61. , 315.77 , -135.898 , 163.751 ],
[ 1. , 62. , 303.806 , -136.855 , 163.751 ],
[ 1. , 63. , 291.273 , -138.255 , 163.751 ],
[ 1. , 64. , 278.767 , -139.824 , 163.751 ],
[ 1. , 65. , 266.778 , -141.123 , 163.751 ],
[ 1. , 66. , 255.773 , -142.42 , 163.751 ],
[ 1. , 67. , 244.864 , -143.314 , 163.751 ]])
我的问题是我不确定我是否理解它是如何工作的。通常我期待类似的东西:
f_1 = f[ f[:,0]==1, : ]
这也有效,对我来说更有意义。(取所有列,但只取那些满足所需条件的行)
有人可以解释为什么这种形式也有效,到底发生了什么?
f_1 = f[ f[:,0]==1 ]