小编Tim*_*Tim的帖子

使用NumPy读取大型格式化文本文件

我自愿帮助某人将有限元网格从一种格式转换为另一种格式(i-deas*.unv到Alberta).我已经使用NumPy对网格进行了一些额外的修改,但是我在将原始文本文件数据读入NumPy数组时遇到了问题.到目前为止,我已经尝试过genfromtxt和loadtxt但没有成功.

一些细节:

1)所有组由它自己的行上的页眉和页脚标志"-1"分隔.

2)NODE组在其自己的行上有一个标题"2411".我只想从这个组中读取备用行,用4个整数跳过每一行,但是用3个Fortran双精度数读取该行.

3)ELEMENT连接组在其自己的行上有一个标题"2412".所有数据都是整数,只需要读取前4列.由于缺少2和3节点元素的值,NumPy阵列中将有一些空插槽.

4)"2477"节点组我认为我可以使用正则表达式处理自己,找到要读取的行.

5)真正的数据文件将有大约100万行文本,所以我非常希望它尽可能地被矢量化(或者NumPy快速读取的东西).

对不起,如果我提供了太多信息,谢谢.

以下行是*.unv文本文件格式的部分示例.

    -1
  2411
  146303         1         1        11
  6.9849462399269246D-001  8.0008842847097805D-002  6.6360238055630028D-001
  146304         1         1        11
  4.1854795755893875D-001  9.1256034628308313D-001  3.5725496189239300D-002
  146305         1         1        11
  7.5541258490349616D-001  3.7870257739063029D-001  2.0504544370783115D-001
  146306         1         1        11
  2.7637569971086767D-001  9.2829777518336010D-001  1.3757239038663285D-001
   -1
   -1
 2412
     9        21         1         0         7         2
     0         0         0
     1         9
    10        21         1         0         7         2
     0         0         0
     9        10
  1550        91         6         0         7         3
   761      3685      2027
  1551        91         6         0         7         3
   761 …
Run Code Online (Sandbox Code Playgroud)

numpy python-2.7

6
推荐指数
1
解决办法
3941
查看次数

标签 统计

numpy ×1

python-2.7 ×1