【问题标题】:how to get to various attributes in the same order in python如何在python中以相同的顺序获取各种属性
【发布时间】:2011-01-12 18:07:09
【问题描述】:

我有一个线条文件,这反过来又保存了每条线条的信息、速度、时间和表面类型。我想做的是按照下面显示的顺序在 np.array 中对这些信息进行排序,其中 id 是行号。

(id)   0   1   2   3   4   5   6   7   8   9

0   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10

1   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

2   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

3   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

4   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

5  t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

... 感谢您的任何回复

【问题讨论】:

  • 这是输入吗?预期输出是什么?
  • 是输入数据...谢谢telliott99
  • 还有……你期望输出什么?
  • 请编辑问题并明确显示输出(以及输入,而我们正在处理它)。
  • 身份证号码是否出现在您的文件中,或者您只是将它们添加为视觉指南?我猜他们出现了,因为如果不是这样,你只需要使用numpy.loadtxt

标签: python numpy


【解决方案1】:

也许这会让你开始......

data ='''
(id)   0   1   2   3   4   5   6   7   8   9

0   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10

1   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

2   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

3   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

4   t1 t2 t3 t4 t5 t6  t7 t8 t9 t10 

5  t1 t2 t3 t4 t5 t6  t7 t8 t9 t10'''

for line in data.strip().split('\n'):
    line = line.strip()
    if line:
        print '*'.join(line.split())

输出:

(id)*0*1*2*3*4*5*6*7*8*9
0*t1*t2*t3*t4*t5*t6*t7*t8*t9*t10
1*t1*t2*t3*t4*t5*t6*t7*t8*t9*t10
2*t1*t2*t3*t4*t5*t6*t7*t8*t9*t10
3*t1*t2*t3*t4*t5*t6*t7*t8*t9*t10
4*t1*t2*t3*t4*t5*t6*t7*t8*t9*t10
5*t1*t2*t3*t4*t5*t6*t7*t8*t9*t10

【讨论】:

    【解决方案2】:

    您可能会发现numpy.loadtxt 很有用。

    例如,假设您有一个包含以下内容的文件:

    数据文件:

    (id)   0   1   
    0   1 smooth 
    1   11  choppy
    2   20  turbulent
    3   2  smooth
    4   5  choppy
    5  7   bumpy
    

    然后你可以将数据加载到一个numpy结构化数组中

    import numpy as np
    arr=np.loadtxt('datafile',
                   dtype=[('id','int'),('speed','float'),('surface','|S20')], 
                   skiprows=1)
    

    请注意,您可以通过指定 skiprows=1 来跳过数据文件的第一行。

    然后您可以像往常一样使用数字索引访问行,例如arr[1], 并且您可以按名称访问列,例如arr['speed']

    您可以使用arr[3]['speed']arr['speed'][3] 获得第三行的速度。

    有关结构化数组的更多信息,请参阅 http://docs.scipy.org/doc/numpy/user/basics.rec.html

    【讨论】:

    • 谢谢~unutbu,这是很棒的信息。
    猜你喜欢
    • 2015-06-17
    • 2017-01-24
    • 1970-01-01
    • 2011-05-12
    • 2021-05-12
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    相关资源
    最近更新 更多