簡體   English   中英

pad 2d arrays 以連接它們

[英]pad 2d arrays in order to concatenate them

這可能是一個非常基本的問題,但我很難把數學弄好。 我有一個包含不同大小的 arrays 的列表。 形狀看起來像這樣:

(30, 300)
(7, 300)
(16, 300)
(10, 300)
(12, 300)
(33, 300)
(5, 300)
(11, 300)
(18, 300)
(31, 300)
(11, 300)

我想將它們用作文本分類中的一個特征,這就是為什么我需要將它們連接成一個大矩陣,這是不可能的,因為形狀不同。 我的想法是用零填充,這樣它們都具有(33,300)的形狀,但我不確定該怎么做。 我試過這個:

padded_arrays = []
for p in np_posts:
    padded_arrays.append(numpy.pad(p,(48,0),'constant',constant_values = (0,0)))

這導致

(78, 348)
(55, 348)
(64, 348)
(58, 348)
(60, 348)
(81, 348)
(53, 348)
(59, 348)
(66, 348)
(79, 348)
(59, 348)

請幫我

您需要為每個維度每個邊緣指定填充。 填充大小是形狀的固定差異,因此您必須使其適應“缺失”的大小:

np.pad(p, ((0, 33 - p.shape[0]), (0, 0)), 'constant', constant_values=0)

(0, 33 - p.shape[0])將第一個維度填充到右邊緣(附加單元格),而不填充左邊緣(前置)。

(0, 0)禁用第二個維度的填充,保持其大小不變 (300-> 300)。

暫無
暫無

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

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