将一个笨拙的数组值的类型从 float 更改为 int
Changing an awkward array's values' type from float to int
我有一个笨拙的 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
您可以简单地使用 ak.values_astype
:
>>> arr = ak.values_astype(arr, "int64")
>>> arr
20 * int64
这是将数组中的所有值从 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]
我有一个笨拙的 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
您可以简单地使用 ak.values_astype
:
>>> arr = ak.values_astype(arr, "int64")
>>> arr
20 * int64
这是将数组中的所有值从 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]