我想我正在為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...