我试图创建一个numpy元组数组,但生成的np数组包含标量而不是元组。
我有:
[ 700072. 711071. 1123467. 1133810. 1799492. 1810464. 3861590. 3871927. 4124862. 4135798. 5097266. 5107561. 5392353. 5402949. 5528955. 5539925. 6056021. 6066913. 6730803. 6741807.]
结果是:
http://[temp.com]/storage/tests/de139607636857fade861a3c2c472643.txt
如您所见,这些是标量,而不是元组。
我做错了什么?
答案 0 :(得分:1)
这是正确的行为。 Numpy.append
将展平您的数据并添加它。看一下这里的示例:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.append.html
嵌套数组并不是一个好主意。也许你想要一个多维数组。无论哪种方式,使用append
,因为Python列表效率极低,最好分配一个空数组,然后填充它。
答案 1 :(得分:1)
如果你不打算将数组用于任何有用的东西(矢量化操作),只需使用一个列表。
nod_intervals = []
for index, row in log_df.iterrows():
if row['gesture'] == 'Nod' and row['label'] == 'y':
nod_intervals.append((row['start'], row['end']))
可能更快(不保证):
m = log_df['gesture'].eq('Nod') & log_df['label'].eq('y')
nod_intervals = log_df[m][['start', 'end']].apply(tuple, 1).values