【问题标题】:python csv text file to array[i,j]python csv文本文件到数组[i,j]
【发布时间】:2012-11-03 03:01:04
【问题描述】:

我刚开始学习python,所以我需要一些帮助。

我有 closeparams.txt 文件,它具有 CSV 结构:

3;700;3;10;1
6;300;3;20;1
9;500;2;10;5

我需要将此文件读入二维数组。 a[i,j] 其中 i - 是行, j - 是列

我搜索但没有找到确切的样本。 我会像这样使用这个巨大的:

i=0
j=3
print a(i,j)

我想显示:

10

或者

i=2
j=1
print a(i,j)

我想显示:

500

【问题讨论】:

  • 你试过什么?有很多方法可以加载 csv 文件:csv 模块、numpy.genfromtxt、...
  • 还有很多方法可以解析/解释您提供的示例数据?
  • 分离读取和数组工作没有问题,但我坚持同时工作这两个。

标签: python arrays csv matrix


【解决方案1】:

怎么样:

import csv
sheet = list(csv.reader(open(source_path)))
print sheet[0][0]

只需将打开的 csv 类型转换为列表!

【讨论】:

  • 您的帖子已显示在低质量帖子审核队列中。这很可能是因为您没有提供任何解释。您的代码相当清晰,因此我将将此答案标记为“看起来不错”,但解释的代码有更大的帮助潜力。
【解决方案2】:
display_list = []

with open('closeparams.txt') as data_file:
   for line in data_file:
      display_list.append(line.strip().split(';'))

print(display_list[0][3]) # [i][j]

编辑 - python3 print()

【讨论】:

  • 将打印语句改为打印函数调用;打印()
  • 或安装 numpy 并尝试 heltonbiker 的解决方案
【解决方案3】:

如果你想处理数组,我建议使用numpy。在你的情况下:

import numpy

a = numpy.loadtxt('apaga.txt', delimiter=';')

print a[0,3]

你没有具体说明数组结构对你有多重要,但是 Numpy 对于复杂的任务非常非常强大,并且可以非常精简地以紧凑、快速和可读的方式。

【讨论】:

  • 我尝试过这样的事情
  • import numpy a = numpy.loadtxt(filename='closeparams.txt', delimiter=';') print a[0,3]
  • 两个可能的原因:1)您使用的是 Python 3.x,如果是,那么 print(a[0,3]) 应该这样做; 2)您将所有内容放在一行中,如果是这样,则分开行。
  • 是的,我使用 Python 3.1.1,我更正了 print(a[0,3]) 但在 shell - import numpy ImportError: No module named numpy
  • @RedSubmarine 你必须先安装numpy。另一种解决方案是使用内置的csv 模块。
猜你喜欢
  • 2012-10-20
  • 2021-11-03
  • 1970-01-01
  • 2019-04-19
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多