从无循环的numpy数组中删除特定值

时间:2018-11-27 12:00:46

标签: python arrays numpy

我有以下numpy数组:

# doors = [[0,1,2],[0,1,2],....,[0,1,2]
doors = np.broadcast_to(np.array([0, 1, 2]),(max_samples, 3))
# first_choice = [ [2],[1],....,[2] ]
first_choice = np.random.randint(3, size=(max_samples, 1))

我不使用任何形式的循环(for,while等),我想创建一个名为result的新numpy数组,其中包含抑制了第一选择的门。

示例:

first_choice = [ [2], [1], [1], [0] ....]
result = [ [0,1],[0,2],[0,2],[1,2] .....]

我该怎么做?如果需要的话,使用任何可以接受的库,我认为numpy可以执行该请求,但不知道如何。

1 个答案:

答案 0 :(得分:1)

这里是一种可能性:

HttpsURLConnection.setDefaultSSLSocketFactory(new TLSSocketFactory());

很明显,要使其正常工作,import numpy as np max_samples = 10 np.random.seed(100) doors = np.broadcast_to(np.array([0, 1, 2]),(max_samples, 3)) first_choice = np.random.randint(3, size=(max_samples, 1)) print(first_choice[:, 0]) # [0 0 0 2 2 0 2 1 2 2] # Take non-matches and reshape result = doors[doors != first_choice].reshape((-1, 2)) print(result) # [[1 2] # [1 2] # [1 2] # [0 1] # [0 1] # [1 2] # [0 1] # [0 2] # [0 1] # [0 1]] 中的每个值必须在first_choice的每个对应行中出现一次(并且只能出现一次)。