将数组添加到numpy数组

时间:2018-08-03 05:37:04

标签: python arrays numpy

我想要一个看起来像这样的numpy数组:

X = np.array([[10, 20], [20, 25], [30, 16], [40, 18], [50, 90], [60, 87]])

我目前有一些从firestore中检索到的字典值:

doc_ref = db.collection('CPU Logs')
query_ref = doc_ref.where(u'testData', u'==', True).order_by(u'logId')
docs = query_ref.get()

我遍历它们并将键值分配给两个变量idusage,然后再将它们添加到数组toAppend中:

for doc in docs:
    values = doc.to_dict()
    id = values['logId']
    usage = values['usage']
    toAppend = [id, usage]
如果id为10,用法为30,则

toAppend看起来类似于[10, 30]。现在,我很难将其添加到一个空的numpy数组中。我尝试插入:

X = np.array([])
for doc in docs:
    values = doc.to_dict()
    id = values['logId']
    usage = values['usage']
    toAppend = [id, usage]
    a = X.flatten()
    np.insert(a, [0,0], toAppend)

print(X)

以及附加:

np.append(X, toAppend)

但是两者似乎都不起作用,因为print语句仅打印出[]

1 个答案:

答案 0 :(得分:4)

看看the docs for insertflatten:它们都返回新的数组(副本)。所以你需要写

X = np.insert(a, [0, 0], toAppend)

,以便X包含扩展数组。我也认为您不需要前面的X.flatten()

您应该考虑只构建一个嵌套的list并在末尾只转换一次,而不是插入一个numpy数组(这很昂贵)。