Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列约束下选择nparray的某些行_Python_Numpy - Fatal编程技术网

Python 在列约束下选择nparray的某些行

Python 在列约束下选择nparray的某些行,python,numpy,Python,Numpy,我有两张票 尺寸的A(60000784) 及 尺寸的B(60000,1) 它们都存储整数 我想创建一个包含A中的行的nparray,这样B的对应行就是某个数字X或某个数字Y。我还想返回第二个包含B的对应行的nparray 例如: A 1 2 3 4 5 6 8 9 B 2 5 6 1 假设我想要A的行,使得B的对应行是1或5。然后返回的第一个nparray将如下所示: 3 4 8 9 5 1 第二个N阵列将是: 3 4 8 9 5 1 在NParray中可能出现这样的情况吗 提

我有两张票

尺寸的
A
(60000784)

尺寸的
B
(60000,1)

它们都存储整数

我想创建一个包含
A
中的行的nparray,这样
B
的对应行就是某个数字X或某个数字Y。我还想返回第二个包含
B
的对应行的nparray

例如:

A

1 2
3 4
5 6
8 9


B

2
5
6
1
假设我想要A的行,使得B的对应行是1或5。然后返回的第一个nparray将如下所示:

3 4
8 9
5
1
第二个N阵列将是:

3 4
8 9
5
1
在NParray中可能出现这样的情况吗


提前感谢

使用
np.inad
创建布尔索引

A = np.array([[1, 2], [3, 4], [5, 6], [8, 9]])
B = np.array([2,5,6,1])

index = np.in1d(B, [1,5])

print A[index]

print B[index]

请您添加一个小示例,显示
a
B
以及您的预期输出,好吗?我刚刚添加了一个小示例。谢谢对于
x
y
的两个值,
索引=(B==x)|(B==y)
的速度要快得多(尽管对于非常大的
B
,差异会减小)。@askewchan时间差异的顺序是什么?我经常看到这样的评论,但我不确定人们谈论的是绝对时间还是相对时间。是微秒还是秒?嗨,丹,我是相对地说的:
比给定的示例数组中的
快6倍,但这显然不是一个好的测试用例。在问题(60k)中大小的随机数组上,它只快了大约50%。当然,绝对时间很难比较,但在我的电脑上,我们谈论的是毫秒。更仔细地看,最慢的部分实际上是使用布尔索引:
A[index]
需要100毫秒:P事实上,在numpy中,尽管其他地方的算法很花哨,但花哨的索引通常是我看到的最慢的部分。但是微改进很有趣!