将数组的值类型从float更改为int

2024-05-15 13:55:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类型为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.???

Tags: importnumpy类型as代码段np数组float
2条回答

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

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

# to integer values 
arr_int = [int(n) for n in arr_float] # this is a list comprehension
arr_int
>>> [3, 5, 3, 10] # float values to integer get always rounded down to whole number

或者,将该数组设置为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]

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

>>> arr.type
20 * float64

您只需使用^{}

>>> arr = ak.values_astype(arr, "int64")
>>> arr
20 * int64

相关问题 更多 >