numpy的ndarray类被定义为
class ndarray(__builtin__.objects)
Run Code Online (Sandbox Code Playgroud)
从我可以收集到的,__builtin__.objects不是一个可迭代的类型?出于这个原因,我发现这种行为令人惊讶:
Arr = numpy.array('As Far As I Know'.split())
=> array(['As', 'Far', 'As', 'I', 'Know'], dtype='|S4')
print map(lambda x: x[0],Arr)
=> ['A', 'F', 'A', 'I', 'K']
Run Code Online (Sandbox Code Playgroud)
或者这是否来自list传递给__init__方法的()对象的属性ndarray?但是,为什么我不能list.reverse在数组对象上使用类似的方法,如果它在内部存储为列表?
(作为一方,没有人知道在ndarray对象的每个元素上应用字符串操作的更好方法吗?)
numpy.ndarray定义__iter__(),通常(和唯一)机制使类型的实例可迭代.请注意,这numpy.ndarray是一个C扩展类型,但这对于它可迭代的问题无关紧要.您在Python和C扩展类型中定义的两种类型都可以通过定义进行迭代__iter__().
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |