首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环通过浮点型变量输入可以改为浮点型

循环通过浮点型变量输入可以改为浮点型
EN

Stack Overflow用户
提问于 2014-12-29 03:49:23
回答 1查看 50关注 0票数 0

我正在计算几个循环中的蛋白质容量(空间质量作用模型)(我知道,填充numpy数组可能相当慢,有更快的方法,但目前它是有效的):

代码语言:javascript
复制
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):行就不再起作用(浮动对象是不可迭代的)。

我可以使用if语句。但是有没有更好的方法(代码不那么混乱)呢?

EN

回答 1

Stack Overflow用户

发布于 2014-12-29 03:50:32

当你使用单一的盐浓度,而不是写

代码语言:javascript
复制
a = 2

代码语言:javascript
复制
a = [2]

这样,您可以将其保留为一个列表,并且您的代码仍然可以工作。

顺便说一句,您可以使用以下NumPy一行程序计算q

代码语言:javascript
复制
In [39]: np.tile(np.outer(a, b), (c, 1, 1))
Out[39]: 
array([[[ 40,  50,  60],
        [ 80, 100, 120],
        [120, 150, 180]],

       [[ 40,  50,  60],
        [ 80, 100, 120],
        [120, 150, 180]]])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27680024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档