我想重复列表N次,但不重复项目本身。例如,
from itertools import *
items = [ _ for _ in range(3)]
# repeat each item twice
row = sorted(list(chain(*repeat(items, 2))))
row
[0, 0, 1, 1, 2, 2]
字符串
但是,我想创建另一个列表(col),它也有6个项目:
col = [1, 2, 0, 2, 0, 1]
型
这些列表的目标是创建一个对角项= 0的邻接矩阵。(COO格式是我的最终目标,所以随机。 Shuffle 不符合我的需要)
row = [0,0,1,1,2,2]
col = [1,2,0,2,0,1]
value = [1,1,1,1,1,1]
import scipy
mtx = scipy.sparse.coo_matrix((value, (row, col)), shape=(3, 3))
mtx.todense()
matrix([[0, 1, 1],
[1, 0, 1],
[1, 1, 0]])
型
我需要的信息到一个COO格式。任何建议?提前感谢!
2条答案
按热度按时间b1payxdu1#
如果你想填充一个大小为
(n, m)
的矩阵的 * 所有 * 非对角索引,你可以这样做:字符串
如果你只是想从COO规范中创建一个密集数组(指定行,列索引和相应的值):
型
kupeojn62#
因为你想创建一个对角线为0的1矩阵,所以使用
numpy.identity
:字符串
输出量:
型
如果你只想创建
row
/col
索引:型
输出量:
型