我正在计算几个循环中的蛋白质容量(空间质量作用模型)(我知道,填充一个numpy数组可能会非常慢,而且有更快的方法,但它现在起作用了):
import numpy as np
a = [10,20,30] # salt concentrations tested
b = [4,5,6] # measured data points
c = 2 # number of components
q = np.empty((c,len(a),len(b)))
for ii,cs in enumerate(a):
for iii,cp in enumerate(b):
for i in range(c):
q[i,ii,iii] = cs*cp
基本上,q包含每个盐浓度下每个组分的测量数据点,并具有形状(组分数量、盐浓度数量、测量数量)。代码运行良好。但是,如果我只使用一种盐浓度,那么for ii,cs in enumerate(a):
行就不再工作了(float对象是不可iterable的)。你知道吗
我可以使用if
语句。但是有没有更好的方法(代码不那么混乱)?你知道吗
当你用单一的盐浓度,而不是写作
写
这样你就可以把它作为一个列表,你的代码仍然可以工作。你知道吗
顺便说一下,您可以使用以下NumPy one liner计算
q
:相关问题 更多 >
编程相关推荐