【发布时间】:2014-08-18 17:22:44
【问题描述】:
你能创建一个包含所有唯一值的 numpy 数组吗?
myArray = numpy.random.random_integers(0,100,2500)
myArray.shape = (50,50)
所以这里我有一个给定的随机 50x50 numpy 数组,但我可以有非唯一值。有没有办法确保每个值都是唯一的?
谢谢
更新:
我创建了一个基本函数来生成一个列表并填充一个唯一的整数。
dist_x = math.sqrt(math.pow((extent.XMax - extent.XMin), 2))
dist_y = math.sqrt(math.pow((extent.YMax - extent.YMin),2))
col_x = int(dist_x / 100)
col_y = int(dist_y / 100)
if col_x % 100 > 0:
col_x += 1
if col_y % 100 > 0:
col_y += 1
print col_x, col_y, 249*169
count = 1
a = []
for y in xrange(1, col_y + 1):
row = []
for x in xrange(1, col_x + 1):
row.append(count)
count += 1
a.append(row)
del row
numpyArray = numpy.array(a)
有没有更好的方法来做到这一点?
谢谢
【问题讨论】:
-
您似乎要求 2500 个介于 0 和 100 之间的唯一随机整数。这应该很明显为什么不会发生......
-
我在问是否有内置方法或快速方法可以做到这一点?
-
您需要随机数还是唯一的?如果只是独一无二的,也许
np.random.permutation(np.arange(N))?
标签: python arrays numpy unique