Numpy中如何創(chuàng)建矩陣并等間隔抽取數(shù)據(jù)
Numpy創(chuàng)建矩陣并等間隔抽取數(shù)據(jù)
1、利用Numpy創(chuàng)建向量和二維矩陣
1.1 創(chuàng)建向量

得到
![]()
需要強調(diào)的是,向量的維度,在python中并不是書本上所學的
,而是

即只有9,向量的列數(shù)1,被置為空。
注意的是,無論是行向量還是列向量,維度都是(N,空),而不會(空,N)
由于列數(shù)是空,所以與矩陣相乘的時候,無法放在左邊,即不能向量*矩陣,只能矩陣乘向量
1.2 創(chuàng)建二維矩陣
![]()
注意:這里1前面有兩個中括號(N維矩陣就是N個中括號)。結(jié)果為:

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]
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python存儲json數(shù)據(jù)發(fā)生亂碼的解決方法
當使用json.dump()把python對象轉(zhuǎn)換為json后存儲到文件中時,文件可能會出現(xiàn)亂碼的問題,本篇文章可以幫助您解決亂碼問題,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-09-09
python中利用zfill方法自動給數(shù)字前面補0
python中有一個zfill方法用來給字符串前面補0,非常不錯,下面小編給大家分享了實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2018-04-04
python實現(xiàn)K近鄰回歸,采用等權(quán)重和不等權(quán)重的方法
今天小編就為大家分享一篇python實現(xiàn)K近鄰回歸,采用等權(quán)重和不等權(quán)重的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
tensorflow2 自定義損失函數(shù)使用的隱藏坑
本文主要介紹了tensorflow2 自定義損失函數(shù)使用的隱藏坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07
django框架實現(xiàn)模板中獲取request 的各種信息示例
這篇文章主要介紹了django框架實現(xiàn)模板中獲取request 的各種信息,結(jié)合實例形式分析了Django框架模板直接獲取request信息的相關(guān)配置與操作技巧,需要的朋友可以參考下2019-07-07

