python-3.x - 使用 njit(numba) 时是否可以将 int 转换为数组?
问题描述
我想知道在 numba 中使用 njit 时是否可以将 int 转换为数组?抱歉,如果这是一个简单的问题,我是图书馆的新手,希望了解更多信息。
我尝试了以下方法:
import numpy as np
from numba import njit
@njit
def top(f):
if f =="TRUE":
t = 0
for i in range(10):
t = t+1
t = np.array(t)
return t
top("TRUE")
但得到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/numba/dispatcher.py", line 401, in _compile_for_args
error_rewrite(e, 'typing')
File "/usr/lib/python3/dist-packages/numba/dispatcher.py", line 344, in error_rewrite
reraise(type(e), e, None)
File "/usr/lib/python3/dist-packages/numba/six.py", line 668, in reraise
raise value.with_traceback(tb)
numba.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Cannot unify int64 and array(int64, 0d, C) for 't', defined at <stdin> (4)
File "<stdin>", line 4:
<source missing, REPL/exec in use?>
[1] During: typing of assignment at <stdin> (7)
File "<stdin>", line 7:
<source missing, REPL/exec in use?>
解决方案
您可能不应该在 numba 函数中更改变量的类型(类似于您无法在 C 函数中这样做的原因)。这似乎有效:
@njit
def top(f):
if f =="TRUE":
t = 0
for i in range(10):
t = t+1
return np.array([t])
推荐阅读
- python - Bresenham 算法“类型错误:‘系列’对象不能解释为整数”
- java - 根据条件成员从休眠中获取元素集合
- python - Pandas 列中的嵌套 Json
- android - 如何将自定义参考代码或促销代码从链接传递到播放或应用商店,并在安装后将其传递给 react-native 应用
- html - 如何隐藏 HTML 页面底部的水平滚动条
- chef-infra - 将厨师前端从 12.17.33 升级到 14.5.29 时出错
- apache-spark - 如何在pyspark数据框中用0替换负值
- angularjs - 如何在 AngularJS 中模拟选项卡自动单击?
- ios - 在将焦点转移到某个元素之前,如何等待公告完成?
- django - 姜戈。外键