Python 更改笨拙的数组';s值';从float输入int

Python 更改笨拙的数组';s值';从float输入int,python,python-3.x,awkward-array,Python,Python 3.x,Awkward Array,我有一个类型为float的笨拙数组,我需要它的类型为int。类似于下面的numpy代码段: import numpy as np import awkward as ak arr = np.array([1., 2., 3.]) arr = arr.astype(int) arr2 = ak.Array(np.array([1., 2., 3.])) arr2 = arr2.??? 如果您有一个笨拙的数组,arr,其中: >>> arr.type 20 * float64

我有一个类型为float的笨拙数组,我需要它的类型为int。类似于下面的numpy代码段:

import numpy as np
import awkward as ak

arr = np.array([1., 2., 3.])
arr = arr.astype(int)

arr2 = ak.Array(np.array([1., 2., 3.]))
arr2 = arr2.???

如果您有一个笨拙的数组,
arr
,其中:

>>> arr.type
20 * float64
您可以简单地使用:


这就是如何将数组中的所有值从float更改为int的方法:

或者,将该数组设置为numpy数组,并按照您的问题中的方式进行操作:

import numpy as np

# Example array
arr_float = [3.45, 5.6, 3.89, 10.1]

# to numpy array
arr_np = np.array(arr_float)

arr_np.astype(int)
>>> array([ 3,  5,  3, 10])
这是一个可以在需要更改时调用的函数:

# Function changing float values to integer values
def to_int(input_array):
    return [int(n) for n in input_array]

# Example array
arr_float = [3.86, 2.9999, 9.46, 3.00013, 8.56]

to_int(arr_float)
>>> [3, 2, 9, 3, 8]

问题是关于笨拙的数组库;我把它编辑得更清楚了。我的错。这段代码的另一个问题是,从我的使用角度来看,它会花费太长的时间。Python中的循环非常慢,而适当的广播非常快;虽然你发布的内容肯定适用于较短的数组。对@HEP N008的提示:你应该点击复选标记接受这个答案。
import numpy as np

# Example array
arr_float = [3.45, 5.6, 3.89, 10.1]

# to numpy array
arr_np = np.array(arr_float)

arr_np.astype(int)
>>> array([ 3,  5,  3, 10])
# Function changing float values to integer values
def to_int(input_array):
    return [int(n) for n in input_array]

# Example array
arr_float = [3.86, 2.9999, 9.46, 3.00013, 8.56]

to_int(arr_float)
>>> [3, 2, 9, 3, 8]