我想创建一个numpy数组(在python中),其中轴值由上一个单元格中的值和其他函数确定。
例如: 在以下示例中,y轴(行)上的值由以下方式确定:
Array[i:0] = Array[i-1:0] + 3 + some_other_func()
x轴(col)上的值由以下方式确定:
Array[0:i] = Array[0:i-1] + 4 + some_other_func()
[[0 4 8]
[3 0 0]
[6 0 0]
[9 0 0]]
我现在拥有的代码如下:
matrix = np.zeros((len(seq1) + 1,len(seq2) + 1))
for i in range(1,len(seq1) + 1):
matrix[i][0] = matrix[i - 1][0] + get_pair_score(seq1[i - 1],GAP,score_dict)
for j in range(1,len(seq2) + 1):
matrix[0][j] = matrix[0][j - 1] + get_pair_score(seq2[j - 1],score_dict)
但是,这需要很长时间才能运行(我的序列是很长的字符串...),我在想是否有更有效的方法可以做到这一点。
我知道我可以使用以下语法填充行或列:
x[:,0] = some_value
x[0,:] = some_value
但是当一个单元格中的值取决于前一个单元格时,我想不出一种方法来告诉numpy以类似的方式填充单元格。
任何帮助或见解将不胜感激!