q*****g 发帖数: 1568 | 1 我也忘记了以前是不是问过,反正自己现在还是不知道答案 :-(
在Python(+numpy)里面,如何合理的实现这么一个东西?
M: 一个n行m列的矩阵,每行每列都有名字。比如说:
C0 C1 C2
R0 2.43 -0.11 7.5
R1 5.85 6.0 -4.4
然后我可以通过M['C0']来提取第一列,也可以通过M['R1']来提取第二行。
光是用Python dictionary,我只能实现行 or 列,不能同时实现两个。
谢谢! | q*****g 发帖数: 1568 | 2 刚刚查了一下老帖子,似乎只能自己写一个这样的类了。
【在 q*****g 的大作中提到】 : 我也忘记了以前是不是问过,反正自己现在还是不知道答案 :-( : 在Python(+numpy)里面,如何合理的实现这么一个东西? : M: 一个n行m列的矩阵,每行每列都有名字。比如说: : C0 C1 C2 : R0 2.43 -0.11 7.5 : R1 5.85 6.0 -4.4 : 然后我可以通过M['C0']来提取第一列,也可以通过M['R1']来提取第二行。 : 光是用Python dictionary,我只能实现行 or 列,不能同时实现两个。 : 谢谢!
| r****t 发帖数: 10904 | 3 Hehe, again. using dtype() in numpy. 或者直接PyTables.
From http://www.scipy.org/Numpy_Example_List
>>> mydescriptor = {'names': ('gender','age','weight'), 'formats': ('S1', '
f4', 'f4')} # one way of specifying the data type
>>> a = array([('M',64.0,75.0),('F',25.0,60.0)], dtype=mydescriptor)
# recarray
>>> print a
[('M', 64.0, 75.0) ('F', 25.0, 60.0)]
>>> a['weight']
array([ 75., 60.], dtype=float32) |
|