Python中文
首页
教程
问答
标签
搜索
登录
注册
计算对称纽比矩阵一半的更好方法?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>矩阵的每一个单元格都需要一个由昂贵函数计算的分数。矩阵是对称的,这是我能想到的填充每个单元格的最佳方法。在</p> <pre><code>num_cases = len(case_dictionary.keys()) # num_cases = 10 SmallMatrix = np.zeros((num_cases,num_cases)) for CasesX in range(0,num_cases): for CasesY in range(CasesX,num_cases): SmallMatrix[CasesX,CasesY] = 1 </code></pre> <p>退货:</p> ^{pr2}$ <p>很简单。。。在</p> <p>但是,当矩阵较大且计算成本较高时: 嵌套for循环是最有效的解决方案吗?在</p> <pre><code>num_cases = len(case_dictionary.keys()) # 100000 BigMatrix = np.zeros((num_cases,num_cases)) for CasesX in range(0,num_cases): for CasesY in range(CasesX,num_cases): BigMatrix[CasesX,CasesY] = ExpensiveFunction() </code></pre> <p>慢点。。。是因为我的功能,还是因为循环?在</p> <p><strong><em>编辑</em></strong></p> <p>一直在处理成对数据,所以我回去尝试使用@hpaulj解决方案。我没有足够的知识来理解为什么testUpper()更快?在</p> <pre><code>def testUpper(func): num_cases = 100 BigMatrix = np.zeros((num_cases,num_cases)) upper = np.triu_indices_from(BigMatrix) BigMatrix[upper] = ExpensiveFunction() </code></pre> <p>从下面对@unutbu<code>test</code>函数与numpy版本进行了对比:</p> <pre><code>In [8]: %timeit test(ExpensiveFunction) 1 loops, best of 3: 11.1 s per loop In [9]: %timeit testUpper(ExpensiveFunction) 1000 loops, best of 3: 2.03 ms per loop </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我建议将“昂贵”的计算应用于矩阵的一半,然后使用<code>symmetrize()</code>函数使numpy数组对称,这应该以最小的时间开销</p> <pre class="lang-py prettyprint-override"><code>def symmetrize(a): return a + a.T - numpy.diag(a.diagonal()) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
8 回答
我想从用户导入值,为此
9 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
3 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
1 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
9 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
8 回答
我想从第一个空lin开始解析文本文件
4 回答
我想从简历、简历中提取特定部分
1 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
3 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
5 回答
我想从网上搜集一些关于抵押贷款的数据
2 回答
我想从网站上删除电子邮件地址
5 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
3 回答
我想从网站中提取数据,然后将其显示在我的网页上
10 回答
我想从网页上提取统计数据。
1 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
10 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
7 回答
我想从课堂上打印字典里的键
9 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
2 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
9 回答