python數組一維變二維


http://cnblogs.com/future-dream/p/10890641.html

一、問題

我們在進行數組操作的時候會遇到將一個低維的數組變成一個高維的素數組
二、解決

第一種方法
基本思路就是將低維數組進行等長的循環,在第一次為零的情況下,需要添加一個[]數組,原因是將它的基本框架搭建起來

復制代碼
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、數組的淺拷貝和深拷貝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM