ndarray和list的互相轉換

2021-10-24 07:22:38 字數 1951 閱讀 2287

我們知道python非常適合做機器學習方面的工作,究其原因是因為它對於矩陣,陣列操作的便捷性。在python中list列表物件和numpy模組中的ndarray型別也可以很好的發生轉換,但是在轉換的過程中還是會或多或少地遇到一些特殊的情況,這裡做一下簡單的介紹。

import numpy as np

class

listandndarray

:def

__init__

(self)

: self.x = x =[[

1],[

2,3]

] self.y = np.array(x)

print

(self.y)

# [list([1]) list([2, 3])]

print

(type

(self.y))#

print

(type

(self.y[0]

))#

main = listandndarray(

)

這裡我們可以看到當使用np.arraylist物件進行型別轉換後,我們進一步測試此時的self.y型別,但是內層的第一部分仍舊為list,這是因為陣列在建立的時候必須保證每一行和每一列元素的數量是相同的,而這裡的self.x中第一部分只包含乙個元素,而第二部分包含兩個元素,因此np.array無法完成對其整體的型別轉換而依舊保持內層的型別。

我們可以看如下**:

import numpy as np

class

listandndarray

:def

__init__

(self)

: self.x = x =[[

1,1]

,[2,

3]] self.y = np.array(x)

print

(self.y)

print

(type

(self.y))#

print

(type

(self.y[0]

))#

main = listandndarray(

)

這時我們可以看到,無論是外層還是內層,型別均已被轉換為了

那麼ndarray型別是否可以向list型別轉換呢?是可以的,**如下:

import numpy as np

class

ndarraytolist

:def

__init__

(self)

: self.array = np.ones((2

,3))

self.

list

= self.array.tolist(

)print

(type

(self.

list))

#

main = ndarraytolist(

)

我們可以看到使用tolist()可以將ndarray型別轉換為list型別。

由此我們可以得出,在科學計算中listndarray在某種程度上是等價的。

如果大家覺得有用,請高抬貴手給乙個讚讓我上推薦讓更多的人看到吧~

String 和List 的互相轉換

有時候為了方便資料的儲存和傳遞等,需要把list轉換成string 然後又需要還原,所以把方法記在部落格裡,方便自己查詢。list轉換成 string 迭代list的每個子項,將他們用 隔開,拼接最好是要用stringbuilder 或者stringbuffer 來完成,當然 string 也是可以...

list與datatable互相轉換

public static class datatableextensions foreach var item in list return dt datatable 轉換為list 集合 型別 datatable public static listtolist this datatable d...

ndarray的屬性和方法

下面以這兩行 為基礎資料,進行演示 improt numpy as np x np.array 1,3,5 2,4,6 7,8,9 5,2,0 dtype int 1.ndarray.t 進行矩陣轉置 print x.t 輸出矩陣為 1275 34 82 5690 2.ndarray.size 檢視...