【发布时间】:2019-08-30 21:16:21
【问题描述】:
这里是示例 numpy 数组
new2 = np.array([[0, np.array([ 4928722, 3922609, 14413953, 10103423, 8948498])],
[1,
np.array([12557217, 5572869, 13415223, 2532000, 14609022, 9830632,
9800679, 7504595, 10752682])],
[2,
np.array([10458710, 7176517, 10268240, 4173086, 8617671, 4674075,
12580461, 2434641, 3694004, 9734870, 1314108, 8879955,
6597761, 7034485, 3008940, 9816877, 1748801, 10159466,
2745090, 14842579, 788308, 5984365])],
[62711, np.array([ 6159359, 5003282, 11818909, 11760670])],
[62712,
np.array([ 4363069, 8566447, 9547966, 14554871, 2108131, 12207856,
14840255, 13087558])],
[62713,
np.array([11252023, 8710787, 4233645, 11415316, 13888594, 7410770,
13672430, 6677251, 10431890, 3447966, 12675925, 729773])]] )
我只想提取每行中的第二个元素;变长的numpy数组。我希望这些不同长度的 numpy 数组位于它自己的 numpy 数组中。
我试过这样做
new2[:][1]
这通常意味着包含所有行索引,列索引为 1。但由于某种原因,它的结果与 new2[1] 完全相同。结果是
array([1,
array([12557217, 5572869, 13415223, 2532000, 14609022, 9830632,
9800679, 7504595, 10752682])], dtype=object)
只有一行,其中包含 int 和 numpy 数组。
【问题讨论】:
-
new2的形状是什么? -
在最小样本中,有 3 行,但在我的实际示例中,我使用了 1400 万行。每行有两个元素。第一个元素的大小为 1。第二个元素随每一行变化,从 2 到 200。
-
new2[:, 1]不工作吗? -
它确实有效,谢谢!提交作为答案,我会批准它
-
我想看看
shape,让你知道你有一个二维数组,形状像(n,2)。您似乎已经锁定了这个特定的数组布局,但没有完全理解numpy数组,甚至是基本的 n-d 数字数组。这是数组是具有这些嵌入式数组的对象 dtype,这会使您的任务显着复杂化。