首页 > 解决方案 > 在 numpy 数组中追加函数

问题描述

我的项目需要帮助。我有一个看起来像这样的数组?

rndm = [[0 1]
        [0 0]
        [0 0]
        [0 1]]

现在,我想添加par_1 = [[1 0]], par_2 = [[0 0], ch1 = [[1 1]], and ch2 = [[0 1]]到 rndm。

我的代码如下所示:

new_rndm = []
new_rndm.append(par_1)
new_rndm.append(par_2)
new_rndm.append(ch1)
new_rndm.append(ch2)
# add them to rndm
rndm = numpy.append(rndm, [new_rndm])
print(rndm)

输出给了我这样的东西:

rndm = [0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1]

我所期待的结果是:

rndm = [[0 1]
        [0 0]
        [0 0]
        [0 1]
        [1 0]
        [0 0]
        [1 1]
        [0 1]]

我认为问题在于 append 不能在数组中使用。如果正确,任何人都可以帮助我尝试其他什么功能?如果没有,请教育我。我非常愿意学习。谢谢!

标签: pythonarrayspython-3.xappendadd

解决方案


利用np.append(<array>, <elem to append>, axis=0)

rndm = np.array([[0, 1],
        [0, 0],
        [0, 0],
        [0, 1]])

par_1 = [[1, 0]]; par_2 = [[0, 0]]; ch1 = [[1, 1]]; ch2 = [[0, 1]]

rndm = np.append(rndm, par_1, axis=0)
rndm = np.append(rndm, par_2, axis=0)
rndm = np.append(rndm, ch1, axis=0)
rndm = np.append(rndm, ch2, axis=0)

array([[0, 1],
       [0, 0],
       [0, 0],
       [0, 1],
       [1, 0],
       [0, 0],
       [1, 1],
       [0, 1]])

编辑:

重塑:

x = np.array([2,1])
y = x.reshape(-1,1) # <------------ you have to do this
x.shape, y.shape

((2,), (2, 1))

推荐阅读