我已从文件中读取数据并存储到矩阵中(frag_coords):
frag_coords =
[[ 916.0907976 -91.01391344 120.83596334]
[ 916.01117655 -88.73389753 146.912555 ]
[ 924.22832597 -90.51682575 120.81734705]
...
[ 972.55384732 708.71316138 52.24644577]
[ 972.49089559 710.51583744 72.86369124]]
type(frag_coords) =
class 'numpy.matrixlib.defmatrix.matrix'
按指定列重新排序矩阵时没有任何问题。例如,下面的代码工作正常:
order = np.argsort(frag_coords[:,2], axis=0)
我的问题是:
len(frag_coords[0]) = 1
我需要单独访问第一行的各个数字,我尝试将其拆分,将其转换为列表,并且所有内容似乎都返回3个数字而不是列,而是返回len = 1的单个元素。我需要帮助!
答案 0 :(得分:0)
您的问题是您使用的是matrix
而不是ndarray
。你确定要的吗?
对于矩阵,仅为第一行索引会导致另一个矩阵,即行矩阵。检查frag_coords[0].shape
:它将是(1,3)
。对于ndarray
,它将是(3,)
。
如果您只需要索引第一行,请使用两个索引:
frag_coords[0,j]
或者如果您临时存储该行,只需将其作为行矩阵索引:
tmpvar = frag_coords[0] # shape (1,3)
print(tmpvar[0,2]) # for column 2 of row 0
如果您不需要太多矩阵运算,我建议您使用np.array
代替。您可以随时直接将数据读入数组,但在给定的点上,如果您愿意,也可以使用np.array(frag_coords)
转换现有矩阵。