再见。
如果我有下面的数组:
[11, "apples", 22, 11], [12, "pear", 24, 11], [13, "bannana", 18, 11], [14, "pear", 17, 11]
如何将数组更改为仅显示来自用户pear
的数据?我想收集用户pear
的第1列中的所有值。(12,14)
或者,我如何找到第2列中唯一的值,例如苹果、梨和香蕉。然后按pear
筛选,只找到pear
的数据。[12,"pear",24,11],[14,"pear",17,11]
我尝试过什么和它的各种形式:uniqueRows = np.unique(array, axis=:,1)
如果我有唯一的值,我就可以用它来过滤。
new_arr = np.array([[11, "apples", 22, 11], [12, "pear", 24, 11], [13, "bannana", 18, 11], [14, "pear", 17, 11]])
new_val = np.array(["pear"])
result = np.in1d(new_arr[:, 1], new_val)
z = new_arr[result]
3条答案
按热度按时间cygmwpex1#
Pandas路
然而,您可以使用unique()来代替drop_duplicate,但这种方式更快。
j8ag8udp2#
根据您的问题,使用
numpy
似乎不是必需的,因此这就是您使用标准列表理解的方法。我假设输入名为
data
。首先,我们迭代列表中的每一项,得到每个单词的关键字
这将生成单词列表(每个子数组的第二个元素)
但是我们并不希望这个数组作为我们的结果,我们希望check这个数组来得到我们的结果,所以使用同样的
for..in
语法,我们可以在迭代的时候检查每一项让我们
现在我们已经过滤了所有的
pear
子数组,但是我们真正想要的是第一个元素(或者整个对象),这样我们就可以在for...in
列表解析的开始改变我们“选择”的索引。这会给予我们
如果确实需要整个项,则可以选择根本不对结果进行索引
eit6fx6z3#
1.* 或者,我如何找到第2列中唯一的值,例如苹果,梨和香蕉。然后按梨过滤,只找到梨的数据。[12,"pear",24,11],[14,"pear",17,11]。
我相信以上的问题,你已经自己回答了。如果我理解错了,请纠正我。
1. 如何将数组更改为仅显示来自用户pear的数据?我想收集用户pear的第1列中的所有值。(12,14)*
如果只想从第1列收集,可以转置代码创建的数组,并返回第一个数组。
上面是你写的,你可以接着做:
输出:
数组(['12','14'],数据类型='〈U21')