将数组添加到 numpy 数组

cos*_*smo 4 python arrays numpy

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

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

我目前有从 firestore 检索的字典值:

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

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

for doc in docs:
    values = doc.to_dict()
    id = values['logId']
    usage = values['usage']
    toAppend = [id, usage]
Run Code Online (Sandbox Code Playgroud)

[10, 30]如果 id 为 10 并且使用情况为 30,toAppend 看起来会类似。现在,我在尝试将其添加到空的 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)
Run Code Online (Sandbox Code Playgroud)

以及附加:

np.append(X, toAppend)
Run Code Online (Sandbox Code Playgroud)

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

Ion*_*ons 6

查看和 的文档insertflatten:它们都返回新数组(副本)。所以你需要写

X = np.insert(a, [0, 0], toAppend)
Run Code Online (Sandbox Code Playgroud)

为了X包含扩展数组。我也不认为你需要前面的X.flatten().

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