我們知道numpy.ndarray.reshape()是用來改變numpy陣列的形狀的,但是它的引數會有一些特殊的用法,這里我們進一步說明一下,代碼如下:
import numpy as np
class Debug:
def __init__(self):
self.array1 = np.ones(6)
def mainProgram(self):
print("The value of array1 is: ")
print(self.array1)
print("The array2 is: ")
array2 = self.array1.reshape(2, 3)
print(array2)
if __name__ == '__main__':
main = Debug()
main.mainProgram()
"""
The value of array1 is:
[1. 1. 1. 1. 1. 1.]
The array2 is:
[[1. 1. 1.]
[1. 1. 1.]]
"""
這里我們看到我們將一個長度為6的一維陣列變成了一個尺寸為(2, 3)的二維陣列,這里的2代表2行,對應y軸,3代表3列,對應x軸,
然而有時候我們會在reshape中使用到-1這個引數,當使用這個引數時,會將陣列重新塑形變得十分簡單,代碼如下:
class Debug:
def __init__(self):
self.array1 = np.ones(6)
def mainProgram(self):
print("The value of array1 is: ")
print(self.array1)
print("The array2 is: ")
array2 = self.array1.reshape(-1, 3)
print(array2)
if __name__ == '__main__':
main = Debug()
main.mainProgram()
"""
The value of array1 is:
[1. 1. 1. 1. 1. 1.]
The array2 is:
[[1. 1. 1.]
[1. 1. 1.]]
"""
我們可以看到當我們將reshape的第一個引數變為-1時,我們仍舊獲得了一個尺寸為(2, 3)的陣列,其實在這里,-1代表的意思為6 / 3 =2,其中6是被塑形一維陣列的長度,3是我們指定的二維陣列一個方向的維度,這樣的好處就是當資料量比較大時,我們在二維陣列重新塑形時只需要指定一個維度上的尺寸,另一個維度上的尺寸python會自動為我們計算,
如果大家覺得有用,請高抬貴手給一個贊讓我上推薦讓更多的人看到吧~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/169120.html
標籤:其他
