相关疑难解决方法(0)

Python相当于MATLAB的"ismember"函数

在尝试优化代码的许多尝试之后,似乎最后一个资源是尝试使用多个核运行下面的代码.我不知道如何转换/重新构建我的代码,以便使用多个内核可以更快地运行.如果我能获得指导以实现最终目标,我将不胜感激.最终目标是能够尽快为阵列A和B运行此代码,其中每个阵列包含大约700,000个元素.这是使用小数组的代码.700k元素数组被注释掉了.

import numpy as np

def ismember(a,b):
    for i in a:
        index = np.where(b==i)[0]
        if index.size == 0:
            yield 0
        else:
            yield index


def f(A, gen_obj):
    my_array = np.arange(len(A))
    for i in my_array:
        my_array[i] = gen_obj.next()
    return my_array


#A = np.arange(700000)
#B = np.arange(700000)
A = np.array([3,4,4,3,6])
B = np.array([2,5,2,6,3])

gen_obj = ismember(A,B)

f(A, gen_obj)

print 'done'
# if we print f(A, gen_obj) the output will be: [4 0 0 4 3]
# notice that the output array needs to …
Run Code Online (Sandbox Code Playgroud)

python optimization matlab numpy

20
推荐指数
2
解决办法
2万
查看次数

Numpy:找到一个数组中出现在另一个数组中的元素的索引

我有两个1D数组,我想知道一个数组中的元素是否出现在另一个数组中.

例如:

import numpy as np
A = np.array([ 1, 48, 50, 78, 85, 97])
B = np.array([38, 43, 50, 62, 78, 85])
Run Code Online (Sandbox Code Playgroud)

我想要:

C = [2,3,4] # since 50 in second array occurs in first array at index 2, 
            # similarly 78 in second array occurs in first array in index 3,
            # similarly for 85, it is index 4
Run Code Online (Sandbox Code Playgroud)

我试过了:

accuracy = np.searchsorted(A, B)
Run Code Online (Sandbox Code Playgroud)

但它给我带来了不良后果.

python arrays numpy

7
推荐指数
2
解决办法
4006
查看次数

确定两个列表/数组的混洗索引

作为挑战,我给自己这个问题:

给定2个列表A和B,其中B是A的混乱版本,其想法是找出混洗的索引.

例如:

A = [10, 40, 30, 2]
B = [30, 2, 10, 40]

result = [2,   3,    0,      1] 
        A[2]  A[3]   A[0]  A[1]
        ||     ||     ||    ||
        30      2     10    40
Run Code Online (Sandbox Code Playgroud)

请注意,相同元素的关系可以任意解决.

我想出了一个解决方案,涉及使用字典来存储索引.这个问题有什么其他可能的解决方案?使用库的解决方案也有效.Numpy,pandas,一切都很好.

python arrays indexing numpy list

5
推荐指数
2
解决办法
182
查看次数

在numpy数组中查找多个元素的索引

给定一个整数数组,我需要找到存储在不同数组中的许多元素的索引。这是:

import numpy as np
a1 = np.array([ 4, 5, 6, 1, 2, 3, 7, 86, 9, 15])
a2 = np.array([ 2, 3, 5, 6, 9])
Run Code Online (Sandbox Code Playgroud)

a1我的初始元素数组在哪里,a2是包含我需要在a1.

在这种情况下,结果应该是:

a3 = ([4, 5, 1, 2, 8])
Run Code Online (Sandbox Code Playgroud)

这似乎是一个相当简单的操作,但我一直无法弄清楚如何去做。

python arrays numpy

3
推荐指数
1
解决办法
4157
查看次数

比较两个不同大小的 numpy 数组的最佳方法

我有 2numpy array个不同尺寸的。理论上,一个将是另一个的子集。我想在较大的索引中找到numpy array其值与较小的子集匹配的索引。

例如

A = [ 7.52   8.32  16.96  20.05 -24.96 -42.69 -47.47  55.04 -57.62   2.03
  61.94  64.41 -71.3   93.6  151.65 151.75  -0.43  -3.18   4.59  -5.55
   6.44  -9.48   9.31   0.67 -14.34  -8.09  16.23  17.69  19.46  23.52
 -52.59]

B = [61.94 16.23 19.46 -5.55 -0.43 93.6]
Run Code Online (Sandbox Code Playgroud)

2 个for循环将执行此操作,但我想知道是否有 Python 方法可以更快地执行此操作。

我尝试了一个循环,但它不起作用(我怀疑numpy.where它不适用于不同大小的数组)

A = [ 7.52   8.32  16.96  20.05 -24.96 -42.69 -47.47  55.04 -57.62   2.03
  61.94  64.41 -71.3   93.6  151.65 151.75  -0.43 …
Run Code Online (Sandbox Code Playgroud)

python numpy

2
推荐指数
1
解决办法
213
查看次数

在二维numpy数组中查找值的索引

我正在尝试从一个numpy数组中获取索引值,我尝试使用相交而不是徒劳。我只是想在2个数组中查找类似的值。一个是2D,我要选择一列,另一个是1D,仅是要搜索的值列表,因此实际上只有2个1D数组。

我们将此数组称为:

 array([[    1, 97553,     1],
       [    1, 97587,     1],
       [    1, 97612,     1],
       [    1, 97697,     1],
       [    1, 97826,     3],
       [    1, 97832,     1],
       [    1, 97839,     1],
       [    1, 97887,     1],
       [    1, 97944,     1],
       [    1, 97955,     2]])
Run Code Online (Sandbox Code Playgroud)

我们正在搜索说, values = numpy.array([97612, 97633, 97697, 97999, 97943, 97944])

所以我尝试:

numpy.where(a[:, 1] == values)
Run Code Online (Sandbox Code Playgroud)

而且我希望可以得到一堆值的索引,但是取而代之的是,我得到了一个空数组,它吐出了[(array([], dtype=int64),)]

如果我尝试这样做:

numpy.where(a[:, 1] == 97697)
Run Code Online (Sandbox Code Playgroud)

它给了我回报(array([2]),),这就是我所期望的。

我在这里缺少数组的怪异之处吗?还是有可能更简单的方法来做到这一点?如我所料,查找数组索引和匹配数组似乎不起作用。当我想通过指数或唯一值找到数组的并集或相交时,它似乎无法正常工作。任何帮助都将是超级。谢谢。

编辑: 根据沃伦斯的要求:

import numpy

a = numpy.array([[    1, 97553,     1],
       [ …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

0
推荐指数
1
解决办法
7869
查看次数

标签 统计

numpy ×6

python ×6

arrays ×4

indexing ×1

list ×1

matlab ×1

optimization ×1