术语:Python 和 Numpy -`iterable`与`array_like`
·
回答问题
使用Numpy的 Python 程序中的iterable和array_like对象有什么区别?
iterable和array_like都经常出现在 Python 文档中,它们有一些相似的属性。
我知道在这种情况下,array_like对象应该支持Numpy类型的操作,例如广播,但是Numpy数组区域也是可迭代的。说array_like是iterable的扩展(或超集?)是否正确?
Answers
术语“类数组”实际上仅在 NumPy 中使用,指的是可以作为第一个参数传递给numpy.array()以创建数组的任何内容。
术语“可迭代”是标准的 Python 术语,指的是可以迭代的任何东西(例如使用for x in iterable)。
大多数类似数组的对象都是可迭代的,但标量类型除外。
许多可迭代对象不是类数组——例如,您不能使用numpy.array()从生成器表达式构造 NumPy 数组。 (您必须改用numpy.fromiter()。尽管如此,在 NumPy 文档的术语中,生成器表达式并不是“类数组”。)
更多推荐

所有评论(0)