我有一系列称为dists的距离.我想选择两个值之间的dists.我写了以下代码行来做到这一点:
dists[(np.where(dists >= r)) and (np.where(dists <= r + dr))]
Run Code Online (Sandbox Code Playgroud)
但是,这仅选择条件
(np.where(dists <= r + dr))
Run Code Online (Sandbox Code Playgroud)
如果我通过使用临时变量顺序执行命令,它可以正常工作.为什么上面的代码不起作用,我如何让它工作?
干杯
我想在两个2D numpy数组中获得相交(公共)行.例如,如果以下数组作为输入传递:
array([[1, 4],
[2, 5],
[3, 6]])
array([[1, 4],
[3, 6],
[7, 8]])
Run Code Online (Sandbox Code Playgroud)
输出应该是:
array([[1, 4],
[3, 6])
Run Code Online (Sandbox Code Playgroud)
我知道如何用循环来做这件事.我正在寻找一种Pythonic/Numpy方式来做到这一点.
我有一个数组X:
X = np.array([[4, 2],
[9, 3],
[8, 5],
[3, 3],
[5, 6]])
Run Code Online (Sandbox Code Playgroud)
我希望在这个数组中找到几个值的行的索引:
searched_values = np.array([[4, 2],
[3, 3],
[5, 6]])
Run Code Online (Sandbox Code Playgroud)
对于这个例子,我想要一个结果,如:
[0,3,4]
Run Code Online (Sandbox Code Playgroud)
我有一个代码这样做,但我认为它过于复杂:
X = np.array([[4, 2],
[9, 3],
[8, 5],
[3, 3],
[5, 6]])
searched_values = np.array([[4, 2],
[3, 3],
[5, 6]])
result = []
for s in searched_values:
idx = np.argwhere([np.all((X-s)==0, axis=1)])[0][1]
result.append(idx)
print(result)
Run Code Online (Sandbox Code Playgroud)
我找到了类似问题的答案,但它仅适用于1d阵列.
有没有办法以更简单的方式做我想做的事情?