将元组追加到np数组返回标量列表,而不是元组

2024-05-22 00:01:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个元组的numpy数组,但是结果np数组包含标量而不是元组。在

我有:

log_df = pd.read_csv(file_name)
nod_intervals = np.array([])
for index, row in log_df.iterrows():
    if row['gesture'] == 'Nod' and row['label'] == 'y':
        nod_intervals = np.append(nod_intervals, (row['start'], row['end']))

 print nod_intervals

结果是:

^{pr2}$

如您所见,这些是标量,而不是元组。在

我做错什么了?在


Tags: csvnamenumpylogdfreadnp数组
2条回答

这是正确的行为。Numpy.append将展平数据并添加它。请看下面的示例:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.append.html

嵌套数组并不是一个好主意。也许你想要一个多维数组。不管怎样,使用append作为Python列表是非常低效的,最好是分配一个空数组,然后填充它。在

如果不打算将数组用于任何有用的操作(矢量化操作),只需使用一个列表。在

nod_intervals = []
for index, row in log_df.iterrows():
    if row['gesture'] == 'Nod' and row['label'] == 'y':
        nod_intervals.append((row['start'], row['end']))

可能更快(不保证):

^{pr2}$

相关问题 更多 >