numpy array或matrix的交換兩行

2022-05-17 20:46:58 字數 623 閱讀 5781

a[j,:] = a[maxindex,:]    #

注意這樣是乙個很低階的錯誤!這樣只是賦值

我們很容易想起python中的兩個值交換一句搞定不用引入中間變數

a, b = b, a

但在numpy的array或matrix中,這樣是錯誤的

需要使用選中兩行來互換:

a[[i, j], :] = a[[j, i], :] # 實現了第i行與第j行的互換

下面看乙個例項:

import

numpy as np

m = np.mat([[1. ,2 ,-1],[2,1,-2],[-3,1,1]])

print("a="

,a)a[[0,2],:] = a[[2,0],:]

print("a="

,a)#

-------------------------

a= [[ 1. 2. -1.]

[ 2. 1. -2.]

[-3. 1. 1.]]

a= [[-3. 1. 1.]

[ 2. 1. -2.]

[ 1. 2. -1.]]

刪去numpy array 中的全零行或列

首先求出全零行 列的index,放在index list中。本例中全零行和全零列index相同,故index list相同。由index list構建乙個一維的 長度等於array的行數或列數的bool array,使得要保留的行 列所對應的元素為true,要去掉的元素為false。之後通過如下 刪...

Numpy array建立 使用

array函式 語法 numpy.array object,dtype none,copy true,order none,subok false,ndmin 0 其中 object 是陣列或巢狀的數列 dtype 是陣列元素的資料型別,可選,預設為浮點型 copy 是設定是否需要複製,預設需要 o...

numpy array索引和切片

一維陣列很簡單,基本和列表一致。它們的區別在於陣列切片是原始陣列檢視。這就意味著,如果做任何修改,原始都會跟著修改。這也意味著,如果不想更改原始陣列,我們需要進行顯式的複製,從而得到它的副本。copy import numpy as np arr np.arange 10 arr輸出 array 0...