我这行是
event_probs=np.asarray(
self.all_results_probabilities_smoothed[start_frame_num:end_frame_number])[:,0]
这是该行的印刷品
ndarray: [array([0.99221474, 0.02794698, 0.01088856], dtype=float32)
array([0.99584645, 0.03152211, 0.08942476], dtype=float32)
array([0.9955728 , 0.02596352, 0.26252457], dtype=float32)
array([0.99848574, 0.03096167, 0.83289665], dtype=float32)
array([0.9988594 , 0.02529432, 0.93383425], dtype=float32)
array([0.9988399 , 0.02355683, 0.96631527], dtype=float32)
array([0.99924624, 0.03478203, 0.99265254], dtype=float32)
array([0.99880326, 0.03510844, 0.9966635 ], dtype=float32)
array([0.99914837, 0.02710808, 0.9968749 ], dtype=float32)
array([0.9986891 , 0.02977812, 0.9965431 ], dtype=float32)
array([0.9985268 , 0.04807042, 0.99733377], dtype=float32)
array([0.9950269 , 0.03662388, 0.9988675 ], dtype=float32)
array([0.98378396, 0.04183222, 0.9989925 ], dtype=float32)
array([0.9758868 , 0.07405277, 0.9994506 ], dtype=float32)
array([0.9407065 , 0.36036757, 0.9992743 ], dtype=float32)
array([0.925014 , 0.45132786, 0.99823976], dtype=float32)
array([0.89381886, 0.77280957,...
我需要更改代码,以获取所有数组的每个数组的第一个元素
self.all_results_probabilities_smoothed数组[start_frame_num:end_frame_number] 看起来像这样
ndarray: [[array([0.99221474, 0.02794698, 0.01088856], dtype=float32) 766]
[array([0.99584645, 0.03152211, 0.08942476], dtype=float32) 767]
[array([0.9955728 , 0.02596352, 0.26252457], dtype=float32) 768]
[array([0.99848574, 0.03096167, 0.83289665], dtype=float32) 769]
[array([0.9988594 , 0.02529432, 0.93383425], dtype=float32) 770]
[array([0.9988399 , 0.02355683, 0.96631527], dtype=float32) 771]
[array([0.99924624, 0.03478203, 0.99265254], dtype=float32) 772]
[array([0.99880326, 0.03510844, 0.9966635 ], dtype=float32) 773]
[array([0.99914837, 0.02710808, 0.9968749 ], dtype=float32) 774]
[array([0.9986891 , 0.02977812, 0.9965431 ], dtype=float32) 775]
[array([0.9985268 , 0.04807042, 0.99733377], dtype=float32) 776]
[array([0.9950269 , 0.03662388, 0.9988675 ], dtype=float32) 777]
[array([0.98378396, 0.04183222, 0.9989925 ], dtype=float32) 778]
[array([0.9758868 , 0.07405277, 0.9994506 ], dtype=float32) 779]
[array([0.9407065 , 0.36036757, 0.9992743 ], dtype=float32) 780]
感谢您的帮助
答案 0 :(得分:0)
您可以使用for循环遍历multi数组并获取单个数组并获取第一个元素示例代码
for i in your_multi_dim_arra:
c=i[0]
或者您可以使用切片
your_multi_dim_arr[:, 0]
对不起,我忘了切片
这表示您正在选择所有行,如果使用-1,则在其中选择第0个索引元素,这意味着最右边的索引值
答案 1 :(得分:0)
您可以使用numpy索引/切片多维数组的方式对其进行切片
>>> a=np.array([[3,2,1],[4,5,6],[9,8,7],[10,11,12]])
>>> a
array([[ 3, 2, 1],
[ 4, 5, 6],
[ 9, 8, 7],
[10, 11, 12]])
>>> a[:,0]
array([ 3, 4, 9, 10])
索引的含义
# array name [ all rows , column index ]
>>> a [ : , 0 ]
答案 2 :(得分:0)
好像您已经生成了一个包含数组和数字的二维数组。我可以使用以下方法创建类似的内容:
In [191]: arr = np.array([(np.random.randint(0,10,3),np.random.randint(0,10,1)[0]) for _ in range(5)])
In [192]: arr
Out[192]:
array([[array([8, 3, 6]), 5],
[array([2, 2, 5]), 7],
[array([1, 1, 4]), 9],
[array([9, 2, 2]), 2],
[array([6, 8, 2]), 8]], dtype=object)
检查dtype和形状:
In [193]: arr.dtype
Out[193]: dtype('O')
In [194]: arr.shape
Out[194]: (5, 2)
数字列:
In [195]: arr[:,1]
Out[195]: array([5, 7, 9, 2, 8], dtype=object)
您已经找到的数组列:
In [196]: arr[:,0]
Out[196]:
array([array([8, 3, 6]), array([2, 2, 5]), array([1, 1, 4]),
array([9, 2, 2]), array([6, 8, 2])], dtype=object)
如果所有这些数组都具有相同的形状,则可以将它们合并为一个数组:
In [197]: np.stack(arr[:,0])
Out[197]:
array([[8, 3, 6],
[2, 2, 5],
[1, 1, 4],
[9, 2, 2],
[6, 8, 2]])
然后我们可以像以前一样将其编入索引:
In [198]: np.stack(arr[:,0])[:,0]
Out[198]: array([8, 2, 1, 9, 6])
如果子数组的形状不同,则必须使用列表理解来获取每个子数组的第一个元素。