Numpy中如何創(chuàng)建矩陣并等間隔抽取數(shù)據(jù)
Numpy創(chuàng)建矩陣并等間隔抽取數(shù)據(jù)
1、利用Numpy創(chuàng)建向量和二維矩陣
1.1 創(chuàng)建向量
得到
需要強調的是,向量的維度,在python中并不是書本上所學的,而是
即只有9,向量的列數(shù)1,被置為空。
注意的是,無論是行向量還是列向量,維度都是(N,空),而不會(空,N)
由于列數(shù)是空,所以與矩陣相乘的時候,無法放在左邊,即不能向量*矩陣,只能矩陣乘向量
1.2 創(chuàng)建二維矩陣
注意:這里1前面有兩個中括號(N維矩陣就是N個中括號)。結果為:
2、等間隔抽取數(shù)據(jù)
2.1 向量抽取
由于向量只有一維,所以只需
解釋:a[0:9:2]表示向量中第[0~9)位置處的數(shù)據(jù)按照每2個取一個的規(guī)則取出。由于0~9是前閉后開區(qū)間,所以等價于抽取第0,2,4,6,8個位置的數(shù)據(jù)
且如果a[0,0:9:2]會報錯,錯誤如下:
這是因為向量只有一維,a[0,0:9:2]表示的是第一維是0,第二維是0:9:2,所以報錯。
2.2 二維矩陣抽取
由于二維矩陣有兩維,所以需要
如圖b是一個3行5列的矩陣
(1) 抽取的行為0:3:2,即[0,3)行中每兩行取一行,則取出來是第0行和第2行,
(2) 抽取的列為0:5:3,即[0,5)列中每3列取一列,則取出來是第0列和第3列。
綜上,取出來的數(shù)據(jù)是b(0,0)=1,b(0,3)=4,b(2,0)=1,b(2,3)=3
即
3、N維矩陣抽取同理
對Numpy數(shù)據(jù)多個維度上等間隔取值
import torch import numpy as np import time from torch.autograd import Variable a=np.arange(256*256*3) d256=a.reshape((256,256,3)) d128=d256[::2,::2] print(d128.shape) d64=d256[::4,::4] print(d64.shape) d32=d256[::8,::8] print(d32.shape)
兩個冒號后面的數(shù)字表示取間隔的大小,上面只在d256前兩個維度等間隔取值,若要在第三個維度也等間隔取值,再加一個逗號即可
d=d256[::2,::2,::2]
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python 轉換數(shù)據(jù)類型函數(shù)和轉換數(shù)據(jù)類型的作用
這篇文章主要介紹了Python 轉換數(shù)據(jù)類型函數(shù)和轉換數(shù)據(jù)類型的作用,圍繞Python 轉換數(shù)據(jù)類型的相關資料展開內容,具有一定的參考價值,需要的小伙伴可以參考一下2022-03-03python實現(xiàn)html轉ubb代碼(html2ubb)
這篇文章主要介紹了python實現(xiàn)html轉ubb代碼(html2ubb),使用正則表達式寫的一個函數(shù),需要的朋友可以參考下2014-07-07python實現(xiàn)selenium網(wǎng)絡爬蟲的方法小結
這篇文章主要介紹了python實現(xiàn)selenium網(wǎng)絡爬蟲的方法小結,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03