我們知道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.array
對list
物件進行型別轉換後,我們進一步測試此時的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
型別。
由此我們可以得出,在科學計算中list
與ndarray
在某種程度上是等價的。
如果大家覺得有用,請高抬貴手給乙個讚讓我上推薦讓更多的人看到吧~
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 檢視...