在 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.