我正在尝试使用Python进行计算。我想产生一个带有嵌套循环的20 * 20数组。我不知道我的方向是否正确,但这是我的代码:

w = 1.5

m = 0.556

E = np.linspace(15.4, 4.0, num=20)

u = np.linspace(0.29, 0.79, num=20)

Q = 0

for j in E:

for i in u:

Q = E * ( m / 1 + m ) * (1 - (w**2)/((w + u)**2)),

print Q

循环不产生20 * 20数组。如何使它正常工作?

python大神给出的解决方案

您似乎希望Q成为最终的20x20数组。 Numpy的一个关键点是,应尽可能避免for循环,因为它们比矢量化数组操作要慢得多。有更快的方法可以从E和u构建2D阵列。

代码中的主要问题是,行Q = E * ( m / 1 + m ) * (1 - (w**2)/((w + u)**2))实际上只是将两个长度为20的数组逐个元素相乘400次,每次都生成相同长度的20数组Q。

也就是说,我们有两个长度为20的数组:

>>> (E * ( m / 1 + m ))

array([ 17.1248, 16.4576, 15.7904, 15.1232, 14.456 , 13.7888,

13.1216, 12.4544, 11.7872, 11.12 , 10.4528, 9.7856,

9.1184, 8.4512, 7.784 , 7.1168, 6.4496, 5.7824,

5.1152, 4.448 ])

>>> (1 - (w**2)/((w + u)**2))

array([ 0.29777473, 0.31797577, 0.33731751, 0.35584798, 0.37361193,

0.39065107, 0.40700429, 0.42270793, 0.43779594, 0.45230007,

0.46625008, 0.47967384, 0.49259748, 0.50504555, 0.51704109,

0.52860578, 0.53976 , 0.55052296, 0.56091274, 0.5709464 ])

并将它们与*逐个元素相乘只会产生以下结果:

>>> E * ( m / 1 + m ) * (1 - (w**2)/((w + u)**2))

array([ 5.09933263, 5.2331181 , 5.32637834, 5.38156012, 5.40093407,

5.38660945, 5.34054752, 5.26457365, 5.16038825, 5.02957682,

4.87361888, 4.69389633, 4.49170089, 4.26824095, 4.02464786,

3.76198161, 3.48123612, 3.18334398, 2.86918086, 2.53956957])

相反,要将这两个长度为20的数组转换为所需的20x20数组,可以将for循环替换为以下矢量化操作:

>>> np.multiply.outer((E * ( m / 1 + m )), (1 - (w**2)/((w + u)**2)))

# the 20x20 array

这里,outer ufunc的multiply方法用于创建新的20x20数组。

python循环生成二维数组_嵌套循环二维数组的计算与构造 - python相关推荐

  1. 以下构成python循环结构的方法中_超星尔雅初级英语口语(持续更新中)选修课答案...

    套期具有"对冲""互抵"的关系 答:正确 差异化战略核心是企业在市场营销.研究和开发.产品技术和工艺设计以及服务等方面具有强大的实力. 答:正确 以下构成Pyt ...

  2. python随机生成三位数数_如何实现python随机生成数字?

    今天小编就生成随机数,整理了多个方式,方便大家在项目时,根据自己的需求,直接拿来套用即可,以下内容相当详细,具体来看看吧~ 说明:python中生成随机数主要用到random模块,方法主要包括:ran ...

  3. python数据分析做什么作业好_知识星球 | 说说我为什么要做『python数据分析』社群...

    过去一段时间,很多人会问我: "现在的工作没有前途,该如何转行?" "我知道数据时代已经来了,我该如何学习,不让自己落伍?" "数据分析适用于生活和工 ...

  4. python的常用集成开发环境_【分享|10个超好用的Python集成开发环境推荐】- 环球网校...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注Py ...

  5. python xlsx 样式 谷歌开源 样式_连续加班一周最终把所有的Python库整理出来了,愿各位早日学会Py-站长资讯中心...

    MySQLdb,成熟的[MySQL]数据库模块, Baresql,SQL数据库包 ZODB,Python本地对象数据库.一个K-V对象图数据库. pickledb,简单和轻量级的K-V键值存储. Ti ...

  6. 学习python这门课的感受_关于我学习了编程小白的第一本Python入门书之后的感受 200110900207...

    关于我学习了<编程小白的第一本Python入门书>之后的感受 200110900207 计算机类2班 胡敏 其实这本书更多的不是写关于Python的介绍的,而是关于Python的学习,也就 ...

  7. c+字符串数组_了解C ++字符串数组

    c+字符串数组 Hey, Folks! So, as programmers, we often deal with Arrays of all data types. We'll cover C++ ...

  8. c99变长数组_你学过数组,那你知道柔性数组吗?

    1 引言 定长数组包 在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024.结构体如下: // 定长缓冲区struct max_buffer{ ...

  9. sizeof 数组_简单的一维数组竟然有这么多坑?

    各位,今儿给大家带来一个不错的C语言试题,此题对你在C中的数组理解与掌握是个不错的检查,话不多说,请看题: 问题是会输出什么? 我们就开门见山了,通过阅读代码发现本体主要考察以下四方面:数组的指针法访 ...

最新文章

  1. 高级指令——hostname指令【作用:操作服务器的主机名(读取、设置)】、id指令【查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…)】、whoami指令、ps -ef指令
  2. 【BZOJ】2655: calc 动态规划+拉格朗日插值
  3. 有关python_30个有关Python的小技巧
  4. 【NOIP2012】【Luogu1080】国王游戏(贪心,邻项交换)
  5. git 入门第二节 本地和远程仓库链接
  6. SSO CAS 单点系列
  7. Voxengo Peakbuster for mac(音频谐波增强插件)
  8. 关于使用stm8单片机的“外部计数”TIMx_ETR测脉冲的软件配置问题!
  9. arm汇编语言中bne 1b的意思
  10. 教你制作第一个C++游戏!#1 引入
  11. 美国程序员薪水按编程语言大比拼新浪
  12. 中文单栏latex模板
  13. eft and spin
  14. 各国商圈json数据及mysql文件
  15. 将VMware 虚拟磁盘文件vmdk直接挂到win系统下的方法
  16. 最新QQ和微信去水印小程序源码及搭建教程!
  17. 【unity】游戏的第一人称编写,限制角色视野范围,unity的Rotate使用情况区分一次搞懂
  18. 集合篇10.华为机试(涮题记录2)
  19. Slog71_选取、上传和显示本地图片GET !(微信小程序之云开发-全栈时代3)
  20. 微软新版必应gpt人工智能体验教程

热门文章

  1. getElementById getElementsByName的用法与区别(转)
  2. Assembler NASM 指令说明
  3. Net设计模式实例之享元模式( Flyweight Pattern)
  4. 博客园上海俱乐部第二次活动全程图片报道(多图)
  5. vue中使用baidushare分享到微信无法显示bug解决方案
  6. Python学习之解决python下载第三方依赖速度慢的问题
  7. Python中import导入上一级目录模块及循环import问题的解决
  8. 避免HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常
  9. Failed to load resource: net::ERR_INSECURE_RESPONSE 问题解决记录
  10. Xcode 7错误:“缺少iOS分发签名身份...”