gpt4 book ai didi

python - 在 numpy 数组前添加一列

转载 作者:行者123 更新时间:2023-11-28 21:44:21 28 4
gpt4 key购买 nike

我有一个 numpy 数组:

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

现在我想在它前面加一列全1得到:

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

我看到了很多关于我的问题的帖子,但没有一个能解决我的问题。我尝试了 np.concatenate np.append np.hstack 但不幸的是它们都没有用。

最佳答案

只需使用np.concatenate:

>>> import numpy as np
>>> arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

>>> np.concatenate((np.array([0,0,0])[:, np.newaxis], arr), axis=1)
array([[0, 1, 2, 3],
[0, 4, 5, 6],
[0, 7, 8, 9]])

但是 hstack 也可以工作:

>>> np.hstack((np.array([0,0,0])[:, np.newaxis], arr))
array([[0, 1, 2, 3],
[0, 4, 5, 6],
[0, 7, 8, 9]])

唯一“棘手”的部分是两个数组必须具有相同数量的维度,这就是为什么我添加了 [:, np.newaxis] - 它添加了一个新的维度。

如何将零更改为一留作(简单)练习:-)

如果你想添加一个二维数组,你必须删除 [:, np.newaxis] 部分:

np.concatenate((np.zeros((3,3), dtype=int), arr), axis=1)
array([[0, 0, 0, 1, 2, 3],
[0, 0, 0, 4, 5, 6],
[0, 0, 0, 7, 8, 9]])

关于python - 在 numpy 数组前添加一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40814383/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com