1.Numpy數組索引爲None
None並不指代數組中的某一維,None用於改變數組的維度。例如data的shape爲(3,3),則data[:,None]的shape是(3,1,3),data(:,:,None)的shape是(3,3,1)。容易看出None就是在指定位置添加一維,且這個維度的數目是1。這樣數據總數並不會變化,只是數據維度發生變化。
2.copy.deepcopy()
首先直接上結論:
—–深複製,即將被複制對象完全再複製一遍作爲獨立的新個體單獨存在。所以改變原有被複制對象不會對已經複製出來的新對象產生影響。
—–而等於賦值,並不會產生一個獨立的對象單獨存在,他只是將原有的數據塊打上一個新標籤,所以當其中一個標籤被改變的時候,數據塊就會發生變化,另一個標籤也會隨之改變。
—–而淺複製要分兩種情況進行討論:
1)當淺複製的值是不可變對象(數值,字符串,元組)時和“等於賦值”的情況一樣,對象的id值與淺複製原來的值相同。
2)當淺複製的值是可變對象(列表和元組)時會產生一個“不是那麼獨立的對象”存在。有兩種情況:
第一種情況:複製的 對象中無 複雜 子對象,原來值的改變並不會影響淺複製的值,同時淺複製的值改變也並不會影響原來的值。原來值的id值與淺複製原來的值不同。
第二種情況:複製的對象中有 複雜 子對象 (例如列表中的一個子元素是一個列表),如果不改變其中複雜子對象,淺複製的值改變並不會影響原來的值。 但是改變原來的值 中的複雜子對象的值 會影響淺複製的值。
3.Python中axis的理解
4.median frequency balancing
以np.amax爲例,axis=0表示沿着行去最大值,列方向的維度則保持不變;axis=1表示沿着列方向去最大值,行方向的維度保持不變。