python - 提取numpy数组并将每个数组加在一起
问题描述
我使用此代码从“巨大”两个文件中提取数据:
import numpy as np
import re
n=6567 #size of array
#reading 1st file
with open("stiff.txt") as file:
data = file.read()
kmat = [[0 for _ in range(n)] for _ in range(n)]
for x, y, value in re.findall(r'\[\s*(\d+),\s*(\d+)\s*\]: ([0-9e+.]+)', data):
if value :
kmat[int(x)-1][int(y)-1] = value # indexes are 0-based
k=np.array(kmat)
print (k)
#reading 2nd file
with open("mass.txt") as file:
data = file.read()
mmat = [[0 for _ in range(n)] for _ in range(n)]
for x, y, value in re.findall(r'\[\s*(\d+),\s*(\d+)\s*\]: ([0-9e+.]+)', data):
if value :
mmat[int(x)-1][int(y)-1] = value # indexes are 0-based
m=np.array(mmat)
print (m)
然后当我试图乘以k@m
它给我下一个错误:
"matmul did not contain a loop with signature matching types"
原始文件数据样本如下:
[[ 1, 1]: 3.890e-004 [ 1, 7]: 9.732e-005 [ 1, 13]: 9.735e-005 [ 1, 67]: 9.729e-005 [ 1, 73]: 2.440e-005 [ 1, 79]: 2.440e-005
[ 2, 2]: 3.890e-004 [ 2, 8]: 9.732e-005 [ 2, 14]: 9.735e-005 [ 2, 68]: 9.729e-005 [ 2, 74]: 2.440e-005 [ 2, 80]: 2.440e-005
[ 3, 3]: 3.890e-004 [ 3, 9]: 9.732e-005 [ 3, 15]: 9.735e-005 [ 3, 69]: 9.729e-005 [ 3, 75]: 2.440e-005 [ 3, 81]: 2.440e-005
[ 4, 4]: 1.167e-009 [ 4, 10]: 2.920e-010 [ 4, 16]: 2.921e-010 [ 4, 70]: 2.919e-010 [ 4, 76]: 7.319e-011 [ 4, 82]: 7.319e-011
[ 5, 5]: 1.167e-009 [ 5, 11]: 2.920e-010 [ 5, 17]: 2.921e-010 [ 5, 71]: 2.919e-010 [ 5, 77]: 7.319e-011 [ 5, 83]: 7.319e-011
[ 6, 6]: 1.167e-019 [ 6, 12]: 2.920e-020 [ 6, 18]: 2.921e-020 [ 6, 72]: 2.919e-020 [ 6, 78]: 7.319e-021 [ 6, 84]: 7.319e-021 ...................]
假设它是一个稀疏矩阵。
解决方案
推荐阅读
- jquery - jQuery - 如果某个变量大于 1,则调用函数
- sql - 重命名属性并将其粘贴到 cloudera sql 中的新变量中
- c++11 - cmake std::shared_ptr CHECK_CXX_SOURCE_COMPILES 失败 mysql connector-c++ pre-build
- android - 为什么TextView只显示最后一个getIntent().getStringExtra()内容? Android
- php - 包含对象数组()的 stdClass 对象。如何计算嵌套对象中的元素
- r - 构建和安装创建的 R 包时出现问题
- sbt - 我可以使用托管在私有 git(不是 GitHub)中的模板运行 sbt new 命令吗?
- java - 在 Eclipse 中,modulepath 和 classpath 有什么区别?
- c# - Label.Text WindowsForms 中列表的平均值
- javascript - 如何设置用户脚本以在一系列网站上运行?