我从昨天开始学numpy
。
我目标是
从numpy数组中提取odd index
个元素&从numpy数组中提取even index
个元素,并垂直并排合并。
假设我有数组
mat = np.array([[1, 1, 0, 0, 0],
[0, 1, 0, 0, 1],
[1, 0, 0, 1, 1],
[0, 0, 0, 0, 0],
[1, 0, 1, 0, 1]])
我试过的。
--〉我已经完成了转置,因为我必须垂直并排合并。mat = np.transpose(mat)
所以我
[[1 0 1 0 1]
[1 1 0 0 0]
[0 0 0 0 1]
[0 0 1 0 0]
[0 1 1 0 1]]
我试过访问奇数索引元素odd = mat[1::2] print(odd)
给我[[1 1 0 0 0]
----〉错了......应该是[0,1,0,0,1]
对吧?我糊涂了[0 0 1 0 0]]
---〉错了...应该是[0,0,0,0,0]
对吧?这些是从哪里来的?
我的最终输出应该像
[[0 0 1 1 1]
[1 0 1 0 0]
[0 0 0 0 1]
[0 0 0 1 0]
[1 0 0 1 1]]
类型-np.nd array
3条答案
按热度按时间jxct1oxe1#
看起来您想要:
输出量:
中级:
输出:
array([1, 3, 0, 2, 4])
wqlqzqxt2#
虽然行的选择是直接的,但有多种组合它们的方式。
奇数行:
偶数行:
垂直连接行(也可以使用
np.vstack
):但既然你想要列-转置:
我们可以先转置选择:
或在索引前转置(注意“:”切片位置的变化):
另一个答案中的
r_
将切片转换成数组,并将它们连接起来,形成一个行索引数组,这同样有效。ef1yzkbh3#
所以这里交替是你可以使用的逻辑。
实施。
输出#
检查类型
给予