1. 程式人生 > >python numpy矩陣切片和字串切片

python numpy矩陣切片和字串切片

  • 建立4個6*6的矩陣,分別是矩陣值全為0,矩陣值全為1,矩陣值全為指定值,矩陣值隨機;

    import numpy as np
    x1 = np.zeros((6,6))
    x2 = np.ones((6,6))
    x3 = np.full((6,6),255)#可以將255換成別的數字
    x4 = np.random.rand(6,6)
    print(x1)
    print(x2)
    print(x3)
    print(x4)

    執行結果:
    這裡寫圖片描述

  • 讀取矩陣x4第二和第三行的第一個和第四個數字:

x4 = np.random.rand(6,6)
print(x4[2:4,1:5])
  • 讀取矩陣x4所有行第一個和第四個數字:
x4 = np.random.rand(6,6)
print(x4[:,1:5])
  • 讀取矩陣x4所有列的第0個和第3個數字
x4 = np.random.rand(6,6)
print(x4[0:4,:]) #包括下標為0的數字,不包括下標為4的數字
  • 列印矩陣x4從後往前列印
x5 = np.array([(1,2,3),(5,6,8)])
print(x5)
print(x5[::,::-1]) #-1表示步長,也可以設定別的數字
print(x5[::-1])

這裡寫圖片描述

  • 設定步長為2
x5 = np.array([(1,2,3),(5,6,8)])
print(x5[::,::2
]) #步長為2

這裡寫圖片描述

  • 只取下標為2的那一列
x5 = np.array([(1,2,3),(5,6,8)])
print(x5)
print(x5[:,2]) #逗號前一個冒號表示所有行

這裡寫圖片描述

補充:
字串切片和矩陣切片很類似:

s = 'abcdefgh'
print(s)
print(s[::-1]) #-1表示步長
print(s[::2])
print(s[0:5])#下標為0的計算入內,下標為5的不計算入內

輸出結果:
abcdefgh
hgfedcba
aceg
abcde