我有一个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
发生了什么,以后如何解决/避免此问题?