我创建了一个这样的分层模型:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
a = np.full((9,10),1)
a[:5,] = 1
a[5:10,] = 2
print(a)
plt.imshow(a)
>>> Output:
[[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1]
[2 2 2 2 2 2 2 2 2 2]
[2 2 2 2 2 2 2 2 2 2]
[2 2 2 2 2 2 2 2 2 2]
[2 2 2 2 2 2 2 2 2 2]]
plt.imshow()的结果显示为here。
让我们考虑一下我有两个向量:
x = np.linspace(0,10,10)
z = np.random.uniform(0, 9, size=(1,9)).round(0)
其中x是一行,z是一列(如果我们保持简单,则为坐标)。
如何以某种方式更改此numpy数组,我将value=10
分配给对应的x和z对(x [i],z [i])= 1?所以最后我可以得到类似this的内容。
答案 0 :(得分:1)
以下是如何使用numpy
索引iterables
数组的示例:
import numpy as np
import matplotlib.pyplot as plt
a = np.full((10,10),1)
x = np.arange(10)
z = np.random.randint(0, 10, size=(1,10))
a[x,z] = 2
plt.imshow(a)
plt.show()
请注意我如何使用astype(int)
代替round
(编辑:从一开始就使用randint
更好 - 感谢kazemakase for the评论)以及我如何调整a
的范围。我还将linspace
替换为arange
,因为后者可以保证生成整数。
结果如下所示: