python類的陣列屬性 陣列中的自定義類更改屬性

2021-10-21 07:13:57 字數 1559 閱讀 6355

我想我正在為python陣列中的更改尋找乙個操作符。我已經為numpy陣列建立了乙個自定義類。你知道嗎

我想改變陣列中的乙個元素,這也改變了零的數目,下面的類就是這麼做的。你知道嗎class myclass(object):

def __init__(self, matrix):

self._nonzero=len(matrix[nonzero(matrix)])

self._matrix=matrix

def set_matrix(self,matrix):

self._matrix=matrix

self._nonzero=len(matrix[nonzero(matrix)])

def get_matrix(self):

return self._matrix

def get_nonzero(self):

return self._nonzero

matrix=property(fget=get_matrix,fset=set_matrix)

nonzero =property(fget=get_nonzero,fset=set_matrix)

如果我有以下輸入,我得到以下結果a= array([[1, 2],

[3, 4]])

g=myclass(a)

g.nonzero

>>>4 #correct

g.matrix=array([[0, 2],

[3, 4]])

g.nonzero

>>>3 #correct

但是我想用一種更簡單的方法改變numpy陣列矩陣中的乙個元素。當我嘗試以下操作時,我會出錯:g.matrix[0,0]=0

g.matrix

>>>array([[0, 2],

[3, 4]])

g.nonzero

>>>4 #incorrect

編輯我相信我用這個密碼解決了。我不確定它是否優化了,但它確實有效。你知道嗎class myclass(object):

def __init__(self, matrix):

self._matrix=matrix

def set_matrix(self,matrix):

self._matrix=matrix

def get_matrix(self):

return self._matrix

def set_nonzero(self,matrix):

self._matrix=matrix

self._nonzero=len(matrix[nonzero(matrix)])

def get_nonzero(self):

self._matrix=matrix

self._nonzero=len(matrix[nonzero(matrix)])

return self._nonzero

matrix=property(fget=get_matrix,fset=set_matrix)

nonzero =property(fget=get_nonzero,fset=set_nonzero)

python3中numpy庫中陣列屬性的檢視

import numpy as np a1 np.array 1,2,3,4 dtype np.complex128 print a1 print 資料型別 type a1 列印陣列資料型別 print 陣列元素資料型別 a1.dtype 列印陣列元素資料型別 print 陣列元素總數 a1.siz...

Python中的陣列

說明 本文並不詳細介紹python中的列表,可以參看python文件。python中沒有陣列的資料結構,但列表很像陣列,如 a 0,1,2 這時a 0 0,a 1 1,a 2 2,但引出乙個問題,即如果陣列a想定義為0到999怎麼辦,這時可能通過a range 0,1000 實現。或省略為a ran...

Python中的陣列

說明 本文並不詳細介紹python中的列表,可以參看python文件。python中沒有陣列的資料結構,但列表很像陣列,如 a 0,1,2 這時a 0 0,a 1 1,a 2 2,但引出乙個問題,即如果陣列a想定義為0到999怎麼辦,這時可能通過a range 0,1000 實現。或省略為a ran...