相关疑难解决方法(0)

子类numpy ndarray问题

我想继承numpy ndarray.但是,我无法更改阵列.为什么self = ...不改变阵列?谢谢.

import numpy as np

class Data(np.ndarray):

    def __new__(cls, inputarr):
        obj = np.asarray(inputarr).view(cls)
        return obj

    def remove_some(self, t):
        test_cols, test_vals = zip(*t)
        test_cols = self[list(test_cols)]
        test_vals = np.array(test_vals, test_cols.dtype)

        self = self[test_cols != test_vals] # Is this part correct?

        print len(self) # correct result

z = np.array([(1,2,3), (4,5,6), (7,8,9)],
    dtype=[('a', int), ('b', int), ('c', int)])
d = Data(z)
d.remove_some([('a',4)])

print len(d)  # output the same size as original. Why?
Run Code Online (Sandbox Code Playgroud)

python numpy subclass recarray

9
推荐指数
2
解决办法
4046
查看次数

标签 统计

numpy ×1

python ×1

recarray ×1

subclass ×1