在 NumPy 中把字符串转换为浮点数

Vaibhav Vaibhav 2023年1月30日
  1. 使用 astype() 方法将字符串转换为 numpy 中的浮点数
  2. 在 NumPy 中使用 asarray() 方法将字符串转换成浮点数
  3. 在 NumPy 中使用 asfarray() 方法将字符串转换成浮点数
在 NumPy 中把字符串转换为浮点数

数字数据和字符串数据之间的转换有点难以处理。但是在 Python 中,这几乎是毫不费力的,因为 Python 具有许多专门为驱动转换而设计的内置功能。

Python 甚至还有大量的外部库来处理这些转换,从而提高了性能和速度。NumPy 就是这样一个库。

NumPy 是一个 Python 库,它与多维数组和矩阵以及我们可以对它们执行的各种数学和逻辑计算有关。本文将介绍如何使用 NumPy 本身将 NumPy 字符串数组转换为 NumPy 浮点数组。

使用 astype() 方法将字符串转换为 numpy 中的浮点数

astype 是一个内置类函数,用于 ndarray 类型的对象。此方法返回 ndarray 的副本并将其转换为指定的数据类型。

astype() 方法的语法如下。

astype(dtype, order, casting, subok, copy)

它具有以下参数。

  • dtype - 它是 NumPy 数组将被强制转换为的数据类型,
  • order - 这是一个可选参数。此参数控制结果数组或输出的内存布局。
  • casting - 这是一个可选参数。此参数控制将要进行的转换或转换的类型。默认情况下,其值为不安全
  • subok - 这是一个可选的布尔参数。它决定输出数组是 nparray 类型还是 ndarray 的子类。
  • copy - 这是一个可选的布尔参数。它决定输出是否应该是新分配的数组。

你可以使用此方法完成转换。请参考以下代码片断。

import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = stringArray.astype(float)
print(stringArray)
print(floatArray)

输出:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

要了解有关此方法的更多信息,请参考其官方文档

在 NumPy 中使用 asarray() 方法将字符串转换成浮点数

asarray() 是一个 NumPy 函数,它将输入数组转换为指定类型的 NumPy 数组。输入数组可以是 Python 的列表,元组,列表的元组,元组的列表,列表的列表,元组的元组以及 NumPy 数组本身。

asarray() 方法的语法如下。

asarray(a, dtype, order, like)

它具有以下参数。

  • a - 将要转换的输入数组。
  • dtype - 指转换后的数组的数据类型。默认情况下,此函数自动从输入数组中推断数据类型。
  • order - 这是一个可选参数。此参数决定转换后的数组的内存布局。
  • like - 这是一个可选的布尔参数。它控制新创建的数组的定义。

要了解有关此方法的更多信息,请参阅官方文档

import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = np.asarray(stringArray, dtype=float)
print(stringArray)
print(floatArray)

输出:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

在 NumPy 中使用 asfarray() 方法将字符串转换成浮点数

最后是 asfarray()。你可能已经猜到了此方法的作用。它将输入数组转换为 float 类型的 NumPy。

asfarray() 方法的语法如下。

asfarray(a, dtype)

此方法只有两个参数。

  • a -它是将转换为浮点数组的输入数组。
  • dtype -这是一个可选参数,是指输出数组的数据类型。它可以是 str 或 float 数据类型之一。如果它的值是整数数据类型之一,它将自动被数据类型 float64 替换。
import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = np.asfarray(stringArray, dtype=float)
print(stringArray)
print(floatArray)

输出:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

请参阅官方文档以了解更多信息。

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.