У меня есть 53 двумерных массива numpy эквивалентного размера. Мой первый массив имеет значения нолей и единиц (с несколькими неважными -1 (значения NaN). Я пытаюсь использовать значения первого массива для выбора значений в оставшихся, чтобы сделать отдельный кортеж / одномерный массив / вектор он содержит 52 элемента по порядку. Я хотел бы сделать случайные 100 из этих векторов, которые сохраняют отношения наборов данных в первом массиве. Поэтому я должен иметь возможность поместить их в отдельные наборы данных, которые можно перетасовать перед выбором.
Для достижения этой цели я решил, что важно создать список элементов в первом массиве и их расположение. Код для подражания.
np.unique(index, return_counts = True)
# -1, 25. 0, 1210816. 1 , 1210816
###
wpx = 1916546
nwpx = 1210816
tpx = wpx + nwpx
wpxp = wpx/tpx * 100 #61%
nwpxp = nwpx/tpx * 100 #39%
#tpx
#wpxp
#nwpxp
###
#create a list of all values and their locations
#write values into txt/csv for portability to other projects using same data
indexdict = {}
i=0
j=0
indexfile = open('/location1/location2/file1.txt','w')
for ivalue in index:
# while j < 5:
while j < len(ivalue):
#indexdict[(i,j)]=ivalue[j]
indexfile.write("%i,%i,%i\n"%(i,j,ivalue[j]))
j+=1
j=0
i+=1
#print(indexdict)
indexfile.close()
Это создает текстовый файл (CSV), который содержит данные, которые выглядят следующим образом (X, Y, Значение)
643,1613,1
643,1614,1
643,1615,1
643,1616,1
643,1617,0
643,1618,0
643,1619,0
Затем я разделяю значения на то, что можно перемешать.
###
#Read text in and sort values into separate "buckets"
indexfile = open('/location1/location2/file1.txt','r')
zerointerest=[]
TargetA=[]
TargetB=[]
for line in indexfile:
line=line.rstrip()
iline=line.split(',')
#print(iline[2])
if iline[2] == "-1":
zerointerest.append((iline[0],iline[1]))
elif iline[2] == "0":
TargetA.append((iline[0],iline[1]))
elif iline[2] == "1":
TargetB.append((iline[0],iline[1]))
indexfile.close()
#print(zerointerest)
#print(TargetA)
#print(TargetB)
Это то место, где я застреваю. Я создал список значений и местоположений, но я не знаю, как поступить. Я не могу понять, как использовать список, который я создал, чтобы выбрать значения в том же месте в массивах 1- 52, прежде чем добавлять значение массива 53 в его конец, т.е. IE:
[25,26,27,28,29,33,35,37,40,45,50,55,60,75,80,90,100,110,105,100,95,90,85,80,100,120,140,150,150,150,150,150,150,150,150,150,150,145,140,135,130,125,120,115,110,100,100,100,100,100,100,1]