Numpy中的repeat函數使用

Numpy中repeat函數使用

Numpy是Python強大的數學計算庫,和Scipy一起構建起Python科學計算生態。在本節下面我們重點介紹下repeat函數的用法,我們在Python中import numpy,help(numpy.repeat),會出現以下界面:

repeat是屬於ndarray對象的方法,使用它可以通過兩個管道:

(1)numpy.repeat(a,repeats,axis=None); (2)object(ndarray).repeat(repeats,axis=None):理解瞭第一種方法就可以輕松知道第二種方法瞭。

參數的意義:axis=None,時候就會flatten當前矩陣,實際上就是變成瞭一個行向量

axis=0,沿著y軸復制,實際上增加瞭行數

axis=1,沿著x軸復制,實際上增加列數

repeats可以為一個數,也可以為一個矩陣,具體區別我們從以下實例中就會發現

以下各個實例都是使用瞭矩陣c:

實例1:

axis=0情況下可以看出講數據安裝在磁盤存儲格式(先行後列)逐個元素復制repeats次,形成一個行向量

實例2:

實例3:

 

實例4:

這時候它的意思是復制第一行元素repeats[0]次依次類推.假如repeat矩陣length(repeats)!=length(c[:,:1])將會報錯!!

repeat的一個實例:

運行結果:

python中repeat函數用法

repeat()函數用法:

np.repeat(3, 4)
array([3, 3, 3, 3])
x = np.array([[1,2],[3,4]])
np.repeat(x, 2)
array([1, 1, 2, 2, 3, 3, 4, 4])
np.repeat(x, 3, axis=1) #沿著縱軸方向重復,增加列數
array([[1, 1, 1, 2, 2, 2],
[3, 3, 3, 4, 4, 4]])
np.repeat(x, [1, 2], axis=0) #沿著橫軸方向重復,增加行數,分別為一次和兩次
array([[1, 2],
[3, 4],
[3, 4]])

repeat函數

np.repeat用於將numpy數組重復

一維數組重復三次

import numpy as np
# 隨機生成[0,5)之間的數,形狀為(1,4),將此數組重復3次
pop = np.random.randint(0, 5, size=(1, 4)).repeat(3, axis=0)
print("pop\n",pop)
# pop
#  [[0 0 3 1]
#  [0 0 3 1]
#  [0 0 3 1]] 

二維數組在第一維和第二維分別重復三次

pop_reshape=pop.reshape(2,6)
pop_reshape_repeataxis0=pop_reshape.repeat(3,axis=0)
pop_reshape_repeataxis1=pop_reshape.repeat(3,axis=1)
print("pop_reshape\n",pop_reshape)
print("pop_reshape_repeataxis0\n",pop_reshape_repeataxis0)
print("pop_reshape_repeataxis1\n",pop_reshape_repeataxis1)
# pop_reshape
#  [[0 0 3 1 0 0]
#  [3 1 0 0 3 1]]
# pop_reshape_repeataxis0
#  [[0 0 3 1 0 0]
#  [0 0 3 1 0 0]
#  [0 0 3 1 0 0]
#  [3 1 0 0 3 1]
#  [3 1 0 0 3 1]
#  [3 1 0 0 3 1]]
# pop_reshape_repeataxis1
#  [[0 0 0 0 0 0 3 3 3 1 1 1 0 0 0 0 0 0]
#  [3 3 3 1 1 1 0 0 0 0 0 0 3 3 3 1 1 1]]

到此這篇關於Numpy中的repeat函數使用的文章就介紹到這瞭,更多相關Numpy repeat函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: