q*****g 发帖数: 1568 | 1 【 以下文字转载自 Linux 讨论区 】
发信人: qiuxing (球星), 信区: Linux
标 题: Python小问题
发信站: BBS 未名空间站 (Wed Nov 1 15:05:43 2006), 转信
想要实现这么一个东西,大家参谋一下怎么弄最省事:
col0 col1 ...
row0 a00 a01 ...
row1 a10 all ...
.....
就是说带名字的矩阵。要做到可以通过行或者列的名字取出行,列。
要是能够自己带一个排序的method就更好了。
基本的思路是用dictionary套dictionary,但是我想到的方案都比较笨 :-<
又或者有现成的module? | q**1 发帖数: 193 | 2 可以用类似macro的东西,不知道Python里怎么做,在Perl里
use constant col0_name => 0;
use constant col1_name => 1;
.......
或 use ReadOnly modules来定义常数.然后就可以用名字代替
indices了,呵呵
【在 q*****g 的大作中提到】 : 【 以下文字转载自 Linux 讨论区 】 : 发信人: qiuxing (球星), 信区: Linux : 标 题: Python小问题 : 发信站: BBS 未名空间站 (Wed Nov 1 15:05:43 2006), 转信 : 想要实现这么一个东西,大家参谋一下怎么弄最省事: : col0 col1 ... : row0 a00 a01 ... : row1 a10 all ... : ..... : 就是说带名字的矩阵。要做到可以通过行或者列的名字取出行,列。
| d*******H 发帖数: 49 | 3 How about list comprehension?,
assume you know the number of COL and ROW, all data elements are stored in x
as a list
def row(i):
return [x[j] for j in range(i*COL, (i+1)*COL) ]
def col(i):
return [x[j] for j in [a+j for a in range(0, ROW)]]
【在 q*****g 的大作中提到】 : 【 以下文字转载自 Linux 讨论区 】 : 发信人: qiuxing (球星), 信区: Linux : 标 题: Python小问题 : 发信站: BBS 未名空间站 (Wed Nov 1 15:05:43 2006), 转信 : 想要实现这么一个东西,大家参谋一下怎么弄最省事: : col0 col1 ... : row0 a00 a01 ... : row1 a10 all ... : ..... : 就是说带名字的矩阵。要做到可以通过行或者列的名字取出行,列。
| r****t 发帖数: 10904 | 4 numpy supports named axis since around end of 2006.
Or if you need persistence, also see PyTables. |
|