2D Numpy数组索引未遵循约定

时间:2019-05-29 21:17:02

标签: python numpy indexing

我有一个2D数组,想访问1个,2个或更多个随机值而不进行替换,然后更改该值。

但是,我正在使用的索引并没有遵循我期望的其他语言版本。

我正在使用选择与randint,因为我想确保获得唯一的值。这个问题也发生在randint上,只是给它固定的而不是随机数。

a = np.arange(144, dtype = np.int).reshape(12,12)
print(a)
i = np.random.choice(10, 2, replace=False)
j = np.random.choice(10, 2, replace=False)

print(i)
print(j)
print(a[i[0], j[0]])
print(a[i[1], j[1]])

输出如下:

[[  0   1   2   3   4   5   6   7   8   9  10  11]
 [ 12  13  14  15  16  17  18  19  20  21  22  23]
 [ 24  25  26  27  28  29  30  31  32  33  34  35]
 [ 36  37  38  39  40  41  42  43  44  45  46  47]
 [ 48  49  50  51  52  53  54  55  56  57  58  59]
 [ 60  61  62  63  64  65  66  67  68  69  70  71]
 [ 72  73  74  75  76  77  78  79  80  81  82  83]
 [ 84  85  86  87  88  89  90  91  92  93  94  95]
 [ 96  97  98  99 100 101 102 103 104 105 106 107]
 [108 109 110 111 112 113 114 115 116 117 118 119]
 [120 121 122 123 124 125 126 127 128 129 130 131]
 [132 133 134 135 136 137 138 139 140 141 142 143]]
[4 7]
[9 3]
57
87

。 。 。

但是a [4,7] = 55而不是57,这在列上低2 并且a [9,3] = 111而不是87,这在行上低了2

发生了什么,以后如何解决/避免此问题?

0 个答案:

没有答案