我有2D矩阵,我想用0和1填充它.我有一个列表包含一些值.
例如:
values = [1, 3, 5, 8]
Run Code Online (Sandbox Code Playgroud)
我想创建这个矩阵
matrix = [[0, 1, 0],
[1, 0, 1],
[0, 0, 1]]
Run Code Online (Sandbox Code Playgroud)
我用两个嵌套的for循环witf if语句做了这个.值是从0到100的随机整数.我的矩阵将是10*10.有没有办法让这更优雅?
如果您可以使用NumPy,请使用花式索引到数组的展平视图并重新整形:
In [1]: import numpy as np
In [2]: a = np.zeros(9)
In [3]: a
Out[3]: array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.])
In [4]: values = [1,3,5,8]
In [5]: a[values] = 1
In [6]: a
Out[6]: array([ 0., 1., 0., 1., 0., 1., 0., 0., 1.])
In [7]: a.reshape((3,3))
Out[7]:
array([[ 0., 1., 0.],
[ 1., 0., 1.],
[ 0., 0., 1.]])
Run Code Online (Sandbox Code Playgroud)
如果需要整数数组,请声明a为a = np.zeros(9, dtype=int).