數據挖掘工具numpy(七)Numpy數組的拼接、行列交換、轉置

一,數組的拼接

1,豎直拼接
import numpy as np

t1 = np.arange(30).reshape(6,5).astype(float)
t2 = np.arange(30,60).reshape(6,5).astype(float)
t1[:,3] = np.nan
t2[3,:] = np.nan
# 豎直拼接
t = np.vstack((t1,t2))
print(t)
2,水平拼接
import numpy as np

t1 = np.arange(30).reshape(6,5).astype(float)
t2 = np.arange(30,60).reshape(6,5).astype(float)
t1[:,3] = np.nan
t2[3,:] = np.nan
# 水平拼接
t = np.hstack((t1,t2))
print(t)

二,數組的行列交換

1,行交換
import numpy as np

t = np.arange(30).reshape(6,5).astype(float)
t[:,3] = np.nan
# 行交換
t[[1,2],:] = t[[2,1],:]

print(t)
2,列交換
import numpy as np

t = np.arange(30).reshape(6,5).astype(float)
t[:,3] = np.nan
# 列交換
t[:,[0,2]]] = t[:,[2,0]]

print(t)

三,維數組中進行轉置

# 第一種轉置方法
import numpy as np

temp = np.arange(30).reshape(6,5)
print(temp)
print('-'*50)
# 當不傳參的時候和T是同等效果
# 參數默認爲(0,1,2),可根據傳入參數對應更改維度值
# 例如temp = temp.transpose(1,0)
temp = temp.transpose()

print(temp)

第二種轉置方法

import numpy as np

temp = np.arange(30).reshape(6,5)
print(temp)
print('-'*50)

temp = temp.T

print(temp)

第三種轉置方法

import numpy as np

temp = np.arange(30).reshape(6,5)
print(temp)
print('-'*50)

# 與transpose類似,將傳入的維度參數交換
temp = temp.swapaxes(1,0)

print(temp)

四,翻轉90度

import numpy as np

temp = np.arange(20).reshape(4,5)
print(temp)
temp = temp.T
temp[:,:] = temp[:,[3,2,1,0]]
print(temp)

# -------------output---------------------
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]
[[15 10  5  0]
 [16 11  6  1]
 [17 12  7  2]
 [18 13  8  3]
 [19 14  9  4]]

五,拼接實例

import numpy as np

# dtype爲int保證數組爲十進制
number1 = np.loadtxt('./number1.csv',delimiter=',',dtype=int)
number2 = np.loadtxt('./number2.csv',delimiter=',',dtype=int)

# dtype爲int保證數組爲十進制
# zeros、ones中傳入數組shape
num0 = np.zeros((number1.shape[0],1)).astype(int)
num1 = np.ones((number2.shape[0],1)).astype(int)

number1 = np.hstack((number1,num0))
number2 = np.hstack((number2,num1))

totle_num = np.vstack((number1,number2))
print(totle_num)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章