【发布时间】:2020-03-16 10:33:54
【问题描述】:
所以首先这里是我的代码我有疑问,我觉得答案很简单,但我太盲目了,看不到它
dic = {}
for i in range(0,9):
dic['rand_num{0}'.format(i)] = np.sort(random.sample(range(0,8),5))
mat = np.zeros([8,8])
for rand_num in dic.values():
print(rand_num)
for i in range(0,5):
matrixval = rand_num[i]
#print(matrixval)
for j in range(0,8):
mat[matrixval,j] = 1
print(mat)
我创建了 8 个不同的列表,这将帮助我确定在矩阵中设置 1 的位置。
例如。如果我的第一个列表如下所示:
rand_List = [0,3,5,6,7]
第一行或第一列的矩阵应该是这样的
矩阵 = [1, 0, 0, 1, 0, 1, 1, 1]
我在第二个循环中设置矩阵值的位置:for i in range(0,5): matrixval = rand_num[i]。但是,一旦我运行我的代码,我的矩阵只会给我一个而不是一个和零。我觉得我在最后一个 for 循环中遇到了迭代问题,我不知道如何解决它。
如果有人可以帮助我,或者只是给我一个提示,如何真正解决我这个有希望的小错误,我将不胜感激。
【问题讨论】:
-
matrix = [int(x in rand_list) for x in range(9)]. -
对于一个完全随机的二进制矩阵你可以试试:
np.random.randint(0, 2, 8*8).reshape(8,8) -
@pault 好主意 +1 -- 会提到,
randint有一个size参数,这使得.reshape过时了。在下面查看我的答案。
标签: python list numpy loops dictionary