文字列のリストを繰り返し処理し、それらを1、-1、および0の配列に変換しています。例-私は次のリストを持っているかもしれません:
A,B,-C
A,-D
B,C,-D
これは、次のような「ビッグリスト」になります。
[
[1 1 -1 0],
[1 0 0 -1],
[0 1 1 -1]
]
現時点では、文字列のすべての行をループし、文字列が一意である場合は1または-1の値を割り当て、存在しないものをゼロにします(たとえば、最初の文字列にはDが存在しません)。行なので、0です)。私が上記をやっているばかげた方法は基本的に:
for line_of_strings in all_strings:
for the_string in line_of_strings:
entry[string_index] = (1 or -1)
biglist.append(entry)
最終的に、私は実行するリストの素晴らしいセットを持っています:
scipy.optimize.nnls(biglist)
これは機能しますが、トラックのメモリと時間を消費することになります。これを実行するためのより効率的な方法はありますか?numpyまたはscipyの配列/行列を使用していますか?