簡體   English   中英

添加附加的 numpy 數組

[英]Adding appending numpy arrays

我目前正在嘗試將多個 Numpy 數組附加在一起。 基本上,我想要做的是從 (1 xm) 矩陣(技術上是一個向量)開始,並以 (nxm) 矩陣結束。 因此,從 n (1 xm) 個矩陣(向量)到一個 (nxm) 矩陣(如果這有意義的話)。 這樣做的最終目標是使用 numpy.savetxt() 函數將矩陣寫入 csv 文件,因此我最終會得到一個長度為 n 列的 csv 文件。

問題在於 numpy.append() 將向量一起附加到 (1 x 2m) 向量中。 所以假設 a1 和 a2 是 Numpy 數組,每個數組有 10000 個元素。 我將使用 append 函數將 a2 附加到 a1 中,同時創建一個名為 a 的新數組,其中包含 a1 和 a2。

a=np.append(a1, a2, axis=0)
a.shape
>>(20000,)

我想要的是形狀的形式

>>(2, 10000)

或更一般地

>>(n, m)

我該怎么辦? 請注意,我想繼續將向量添加到數組中。 謝謝你的時間!

你可以使用numpy.column_stack的轉置

例如:

import numpy as np

a=np.array([1,2,3,4,5])
b=np.array([9,8,7,6,5])
c=np.column_stack((a,b)).T

print c
>>> array([[1, 2, 3, 4, 5],
           [9, 8, 7, 6, 5]])

print a.shape,b.shape,c.shape
>>> (5,) (5,) (2, 5)

編輯

您可以像這樣繼續添加列:

d=np.array([2,2,2,2,2])
c=np.column_stack((c.T,d)).T
print c
>>> array([[1, 2, 3, 4, 5],
           [9, 8, 7, 6, 5],
           [2, 2, 2, 2, 2]])
print c.shape
>>> (3, 5)

這應該工作

a=np.append(a1, a2, axis=0).reshape(2,10000)
a.shape
>>(2,10000)

為了垂直合並數組,我將使用np.vstack

import numpy as np

np.vstack((a1,a2))

但是,從我的角度來看,不應使用for循環創建numpy.array並將新數組附加到舊數組。 相反,要么首先創建整個numpy.array (nxm),然后將for循環中的數據寫入該數組,

data = np.zeros((n,m))

for i in range(n):
    data[i] = ...

或者您首先使用append數組創建為普通的 python 列表,您可以在最后append其轉換為numpy.array

data = []

for i in range(n):
    data.append(...)

data = np.asarray(data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM