问题
因为一些需求,需要有这么一个类:
class test:
def __init__(self, data:list):
self._data = data
def __getitem__(self, index):
return self._data[index]
由这个类组成一个一维数组,涉及到大量对数组的处理,转成numpy会更方便一些
import numpy as np
data:list[test] = [...]
np.array(data)
正常来说,应该是一个一维的numpy数组,每个元素是test类的对象。
但np.array转换后变成了(len(data), len(data[0]))的矩阵,也就是numpy.array把对象通过__getitem__方法被展开了。
可能是因为对象重载了getitem方法,被numpy当成数组元素进行处理,也就是说本身数据是一维的对象数组,但因为重载了getitem方法,每个对象被当成了数组处理。
在numpy.array中有一个参数like,不确定能不能解决问题。