【问题标题】:I wanto to build an array with values read from a file... how can i do that?我想用从文件中读取的值构建一个数组......我该怎么做?
【发布时间】:2019-10-24 15:01:39
【问题描述】:

我有一个文件要读取,然后从该文件中提取一些值并重新分配这些值以编写一个可读的 ascii 文件。关键是我找不到以正确方式编写值的方法。

我使用的文件是由 tecplot 生成的 ascii 文件。最后,我想生成带有一些标题和变量描述的文件。

到目前为止,我尝试了不同的策略,但我只生成了具有两个值的单个数组,而不是“正确的”矩阵。此外,我并没有按照自己的意愿编写每个元素,我的意思是将循环中逐步分配的元素保存在内存中。

代码如下:

f=open('profile_1D.dat', 'r')
data = []
outfile = open('outfile.dat','w+')

for line in f:
  line = line.split()
  data.append(line)       

data=np.array(data)
arg=(data[43:])

newarr=np.zeros((len(arg),2))
for lists in arg:
  newarray=np.array((lists[2],lists[34]))
  newarray.astype(float)

print newarray
print newarray.shape

`

这样我显然只得到了“数组”的最后一行。

['6.17926421404682' '1.59400321081525E-11']

它的形状是(2,)。 我想要一个像这样填充的 (300,2) 数组:

['5.53645484949833' '1.86479953164333E-11']
['5.55719063545151' '1.8377081954255E-11']
['5.57792642140468' '1.81061685920767E-11']
['5.59866220735786' '1.78352552298984E-11']

【问题讨论】:

  • newarr=np.zeros((len(arg),2) 用在哪里?
  • 对不起,这是代码中的拼写错误,一切都是新的,所以一致。 newarr=np.zeros((len(arg),2)) newarr = list(newarr) # # 对于 arg 中的列表:newarr.append((lists[2],lists[34]))

标签: python arrays multidimensional-array


【解决方案1】:

我认为你得到了最后一行,因为你没有附加 newarray

试试:

for lists in arg:
    newarray.append(np.array((lists[2],lists[34])))

【讨论】:

  • 嗯,所以现在将数组转换为列表似乎可以工作,但我得到的第一件事是:array([0., 0.]), array([0., 0.] ), 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0 ., 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]) , 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0. , 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]), 数组([0., 0.]), array([0., 0.]), array([0., 0.]), array([0., 0.]),然后从序列开始。此外,我希望输出能够很好地写入文件
  • 我的意思是,将结果格式化为具有正确长度的两列。
  • 好的,我解决了这个问题。所以关键是创建一个零数组包括零数组本身,然后附加其他元素,这些元素是列表的元素,所以就像它“合并”的东西在一起。这样更容易,因为我直接创建一个空列表,然后用我想要的值填充列表本身。这里的解决方案: 'code' : arg=data[43:] newarr = list() # # for lists in arg: newarr.append((lists[2],lists[34])) newarr=np.array(newarr )
  • 现在的问题是:我如何在文件上写这个?
猜你喜欢
  • 2014-02-23
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2023-02-03
  • 2016-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多