一、問題
我們在進行數組操作的時候會遇到將一個低維的數組變成一個高維的素數組
二、解決
第一種方法
基本思路就是將低維數組進行等長的循環,在第一次為零的情況下,需要添加一個[]數組,原因是將它的基本框架搭建起來
1 records = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 2 result = [] 3 for y in range(0, 4): 4 for x in range(0, 3): 5 if x == 0: 6 result.append([]) 7 result[y].append(records[x + y * 3]) 8 print(result)
第二種方法,numpy
2.1 升維度
利用函數reshape或者是resize
使用reshape的時候需要注意reshape的結果不改變,因此適用於還要用到原數組的情況
使用resize會改變原數組,因此適用於一定需要修改后的結果為值的情況
import numpy as np x = np.arange(20) # 生成數組
print(x) result = x.reshape((4, 5)) # 將一維數組變成4行5列 原數組不會被修改或者覆蓋
x.resize((2, 10)) # 覆蓋原來的數據將新的結果給原來的數組
print(x)
2.1.1 結果
2.2 降維度
import numpy as np arr = np.arange(10) arr.resize((2, 5)) print(arr) print(f"維度交換:\n{arr.swapaxes(1, 0)}") print(f"C{arr.flatten('C')}") # 默認C 一行為主
print(f"\nF:{arr.flatten('F')}") # 以列為主
print(f"\nA:{arr.flatten('A')}") # 和行一樣
print(f"\nK:{arr.flatten('K')}") # 和行一樣
2.2.1 結果
三、結果呈現
四、總結
Python數組經典操作:
1、兩個等長數組一一對應形成二元組
2、低維數組變成高維數組
3、數組的淺拷貝和深拷貝