Bis*_*tha 4 python arrays numpy
我有一个 numpy 数组:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)
现在我想在它前面添加一列所有的人以获得:
array([[1, 1, 2, 3],
[1, 4, 5, 6],
[1, 7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)
我看到很多关于我的问题的帖子,但没有一个能解决我的问题。我试过,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]])
Run Code Online (Sandbox Code Playgroud)
但hstack也有效:
>>> np.hstack((np.array([0,0,0])[:, np.newaxis], arr))
array([[0, 1, 2, 3],
[0, 4, 5, 6],
[0, 7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)
唯一“棘手”的部分是两个数组必须具有相同的维数,这就是我添加[:, np.newaxis]- 这增加了一个新维度的原因。
如何将零更改为 1 留作(简单)练习:-)
如果要添加 2D 数组,则必须删除该[:, 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]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6615 次 |
| 最近记录: |