如何在numpy.matrix中添加numpy.array?

问题描述

我有一个这样定义的矩阵:

pop = (np.random.randint(3,size=(qtd_individuos,qtd_equipamentos))) + 1

,我想在此矩阵中添加一个新数组。

vetor2 = np.ones((qtd_equipamentos))*2

我已经通过np.append,np.vstack,np.stack,np.concatenate,np.add等方式尝试了一些操作……无济于事...使用append使其在列表中太容易了。我不确定我是否尝试做对了。我发现的示例与此有所不同。

np.insert(pop,vetor1)
np.stack((pop,vetor2))

解决方法

我通过以下方式解决了问题:

pop = np.append(pop,[vetor1],axis = 0) # The square brackets are important!
,

您也可以使用vstack来做到这一点:

np.vstack([pop,vetor2])

建议确保类型相同,因此可以使用例如:

vetor2 = np.ones(qtd_equipamentos,dtype=int)*2

您的输出中有dtype('int32'),与没有进行此修复的dtype不同。