例如:
encoders = {SDRCategoryEncoder, ScalarEncoder}
do_magic_and_answer_me_type(encoders[0]) // I want string
do_magic_and_answer_me_type(encoders[1]) // int (or python equivalents)
Longer:我问这个问题的原因是,python的list行为正确,并保留了各种元素的数据类型,而numpy数组则转换为公共类型。你知道吗
>>>a=[1, 'sweet', 2]
>>>type(a)
type 'list'>
>>> type(a[0])
type 'int'>
>>> type(a[1])
type 'str'>
>>> import numpy
>>> na = numpy.array(a)
>>> type(na)
type 'numpy.ndarray'>
>>> type(na[0])
type 'numpy.string_'>
>>> type(na[1])
type 'numpy.string_'>
>>>
总之,我想告诉编码器需要什么样的输入数据类型,或者 制造numpy.数组()的行为类似于python列表,并保留不同的数据类型。你知道吗
Python的数组不像C中那样是一个数组,而是一个指向包含您放入的数据的对象的指针数组。对象保留自己的类型信息,python很高兴,因为真正的数组是统一的(所有指针)。你知道吗
另一方面,Numpy获取数据并更改其类型,以便所有内容都是相同的类型。在本例中,它们都被更改为string,因为您至少给了它一个string。因此,您不应该以引用的方式使用numpy数组(作为编码器的输入向量),而应该使用python数组。你知道吗
如果您谈论的是编码器列表,您可以询问编码器它的类,这将告诉您它期望的数据类型(对接受字符串/类别的编码器基类的测试可能会做到这一点)。你知道吗
在NuPIC中多重编码器数组是python数组,不是numpy数组。你知道吗
相关问题 更多 >
编程相关推荐