【发布时间】:2021-06-27 00:15:59
【问题描述】:
我正在尝试使用两个二维数组和条件来创建一个数组。用 numpy 随机创建的第一个数组是:
A = [[0 0 0 1 0 1 1 0 0 1 0],
[0 0 1 1 1 1 1 1 0 1 1],
[0 0 0 1 0 1 1 1 0 0 0],
[1 1 0 1 0 0 0 1 1 1 0]]
(假设所有列都至少有“1”值)
第二个数组是:
B = ["a","b","c","d"]
我正在尝试创建一个数组,在每列中仅随机选择“1”值(包含“1”的行无关紧要)。当我找到“1”时,位置(在选定行中)必须链接到数组“B”,取“B”中的值,最后分配到数组“C”中。例如,评估列“0”,唯一可能的值是 A[0,3]=1,所以 B=["d"](唯一可能的值)并且该值必须是数组“C”的第一个值.列“3”可以取“B”中的任何值。
例如,我正在寻找的完整数组可能是以下一个:
C= ["d","d","b","a","b","c","a","d","d","a","b"]
我正在尝试使用以下代码创建“C”:
import numpy as np
A=np.random.randint(2, size=(4,11))
A=np.array(A)
C=[]
var=0
B=["a1","b1","c2","d2"]
for i in range(11):
C.append(var)
R=np.random.randint(0,4)
if A[R,0+i]==1:
var=B[R]
else:
var=0
print(C)
结果如下:
[0, 0, 'a1', 'a1', 'd2', 0, 'd2', 'd2', 'd2', 0, 0]
此代码无法完成工作,我无法在几列中找到“1”。我一直在尝试不同的方法,包括:坐标、循环和生成器。但我找不到真正有效的。
如果您能帮助我,我将不胜感激。
谢谢。
【问题讨论】:
标签: python loops multidimensional-array random generator