如何理解numba中数据类型定义中的[]
How to understand [] in data type definition in numba
我正在查看 python 使用 numba 的代码,并有一些问题。 numba的教程比较少,特地过来问一下
在numba中,数据类型是预先声明的,以帮助处理。我不清楚声明数据类型的规则。一个例子是 numba.float64[:,::1]
。我觉得它正在声明一个 float 类型的二维数组。但是,我不确定 ::1
在这里意味着什么。另一个例子是nb.types.NPDatetime('M')[::1]
。是对一维数组进行切片吗?
我对从 numba.types
导入的 ListType()
仍有疑问。这里只允许一个元素?在我的代码中,一个 class 类型被保存并作为单个参数传递给 ListType()
。如果我需要显式定义此 class 类型,并将其传递到此处怎么办?谢谢。
感觉numba模块的教程或文档很少。如果没问题,请在 numba 上分享一些资源。非常感谢。
One example is numba.float64[:,::1]
. I feel it's declaring a 2D array in float type. However, I'm not sure what ::1
means here
没错。 ::1
表示数组轴连续。这可以实现进一步的优化,例如使用 SIMD 指令。
Another example is nb.types.NPDatetime('M')[::1]
. Is it slicing the 1D array?
nb.types.NPDatetime('M')
是 Numpy 日期时间类型(其中 'M'
用于指定日期时间的 粒度 。例如月份)和 [::1]
表示这是一维连续数组(包含日期时间对象)。
不应混淆对象 实例 和对象 类型 。在 Python 中,将两者混合使用是很常见的,但这是由于语言的动态特性。 Statically-typed 像 C 或 C++ 这样的编译语言清楚地将这两个概念和类型分开,不能在运行时操作。
Only one element is allowed here?
ListType
是一个 class 表示类型列表的类型。它的 唯一参数 定义了列表结果类型中项目的类型。例如 nb.types.ListType(nb.types.int32)
returns 表示包含 32 位整数的类型化列表类型的对象。请注意,它 不是 列表实例。它旨在提供给 Numba 签名或其他类型。
我正在查看 python 使用 numba 的代码,并有一些问题。 numba的教程比较少,特地过来问一下
在numba中,数据类型是预先声明的,以帮助处理。我不清楚声明数据类型的规则。一个例子是 numba.float64[:,::1]
。我觉得它正在声明一个 float 类型的二维数组。但是,我不确定 ::1
在这里意味着什么。另一个例子是nb.types.NPDatetime('M')[::1]
。是对一维数组进行切片吗?
我对从 numba.types
导入的 ListType()
仍有疑问。这里只允许一个元素?在我的代码中,一个 class 类型被保存并作为单个参数传递给 ListType()
。如果我需要显式定义此 class 类型,并将其传递到此处怎么办?谢谢。
感觉numba模块的教程或文档很少。如果没问题,请在 numba 上分享一些资源。非常感谢。
One example is
numba.float64[:,::1]
. I feel it's declaring a 2D array in float type. However, I'm not sure what::1
means here
没错。 ::1
表示数组轴连续。这可以实现进一步的优化,例如使用 SIMD 指令。
Another example is
nb.types.NPDatetime('M')[::1]
. Is it slicing the 1D array?
nb.types.NPDatetime('M')
是 Numpy 日期时间类型(其中 'M'
用于指定日期时间的 粒度 。例如月份)和 [::1]
表示这是一维连续数组(包含日期时间对象)。
不应混淆对象 实例 和对象 类型 。在 Python 中,将两者混合使用是很常见的,但这是由于语言的动态特性。 Statically-typed 像 C 或 C++ 这样的编译语言清楚地将这两个概念和类型分开,不能在运行时操作。
Only one element is allowed here?
ListType
是一个 class 表示类型列表的类型。它的 唯一参数 定义了列表结果类型中项目的类型。例如 nb.types.ListType(nb.types.int32)
returns 表示包含 32 位整数的类型化列表类型的对象。请注意,它 不是 列表实例。它旨在提供给 Numba 签名或其他类型。