首页 > 解决方案 > “numpy.ndarray”对象没有属性“D”

问题描述

import numpy as np
rowlist = np.array([[0, 2, 3, 4, 5], [0, 0, 0, 3, 2], [1, 2, 3, 4, 5], [0, 0, 0, 6, 7], [0, 0, 0, 9, 9]])

new_rowlist = []
rows_left = set(range(len(rowlist)))
col_label_list = sorted(rowlist[0].D, key=hash)

for c in col_label_list:
    rows_with_non_zero = [ r for r in rows_left if rowlist[r][c] != 0 ]
    if rows_with_non_zero != []:
        pivot = rows_with_non_zero[0]
        new_rowlist.append(rowlist[pivot])
        rows_left.remove(pivot)

for r in new_rowlist:
    print(r)

所以我正在关注 Philip Klein 的 Coding the Matrix 书籍课程和关于高斯消除的一章,这一直在出错 'numpy.ndarray' 对象没有属性 'D' 我想要的是能够对矩阵进行排序称为行列表。知道如何克服这个问题吗?如果有任何帮助,我会在 jupyter notebook 上执行此操作提前谢谢!

标签: pythonnumpymathmatrixjupyter

解决方案


有一个错字。没有rowlist[0].D,改行如下

col_label_list = sorted(rowlist[0], key=hash)

此外,也许从下一次作为一个学习过程开始,尝试通过定位导致错误的行来自己调试代码(如果您正确阅读了错误消息)。


推荐阅读