繁体   English   中英

在python中连接多个数组

[英]Concatenate many arrays in python

我有这个连接两个数组的代码。

import numpy as np
from hmmlearn import hmm
model = hmm.MultinomialHMM(n_components=3, n_iter=10,algorithm='map',tol=0.00001)
sequence3 = np.array([[2, 1, 0, 1]]).T
sequence4 = np.array([[2, 1, 0, 1, 1]]).T
sample = np.concatenate([sequence3, sequence4])
lengths = [len(sequence3), len(sequence4)]
model.fit(sample,lengths)

它工作正常。 但现在如果我有两个以上的数组。 让我们说我有 10 个数组。 我怎么能做同样的过程?

import numpy as np
from hmmlearn import hmm
model = hmm.MultinomialHMM(n_components=3, n_iter=10,algorithm='map',tol=0.00001)
sample = np.array([])
lengths = []
for i in range(1:10)
    ?????????????
model.fit(sample,lengths)

您可以使用vstack

那是,

如果 tup 包含至少是二维的数组,则等效于 np.concatenate(tup,axis=0)。

将你的数组存储为一个列表,比如array_list

print np.vstack(array_list) 

样本:

import numpy as np
sequence3 = np.array([[2, 1]]).T
sequence4 = np.array([[2, 5]]).T
sequence5 = np.array([[4, 5]]).T
sequence6 = np.array([[6, 7]]).T
array_list=[sequence3,sequence4,sequence5,sequence6]
sample = np.concatenate([sequence3, sequence4])
lengths = [len(sequence3), len(sequence4)]
print np.vstack(array_list)

[[2]
 [1]
 [2]
 [5]
 [4]
 [5]
 [6]
 [7]]

希望能帮助到你!

为了连接多个数组,您只需将数组与之前所有数组的连接连接起来。

# Create arrays
arrays=[
    np.array([1,2,3]),
    np.array([4,5,6]),
    np.array([7,8,9])
]

# Create an array to return to
sample = np.array([])

for array in arrays:
    sample = np.concatenate([sample, array])

# Print results
print('sample', sample)
print('length', len(sample))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM