[英]Plot 3rd axis of a 3D numpy array
我有一個3D numpy數組,它是在某些時間戳t上的2D(m,n)圖像堆棧。 所以我的數組是形狀(t,m,n)。 我想繪制一個像素值作為時間的函數。
例如:
import numpy as np
import matplotlib.pyplot as plt
data_cube = []
for i in xrange(10):
a = np.random(100,100)
data_cube.append(a)
所以我的(t,m,n)現在的形狀為(10,100,100)。 假設我要在我要執行的10個步驟中的每個步驟上繪制一維索引[12] [12]的值:
plt.plot(data_cube[:][12][12])
plt.show()
但是我得到索引超出范圍錯誤。 我以為我可能會混合使用索引,但是我生成的每個圖似乎都在“錯誤”軸上,即跨2D數組之一,但是我希望它“通過”垂直堆棧。 提前致謝!
解決方案如下:由於您已經在使用numpy
,因此將最終列表轉換為數組,而僅使用切片。 您的問題有兩個方面:
第一:您最終的data_cube
不是數組。 對於列表,您將不得不遍歷值
第二:切片不正確。
import numpy as np
import matplotlib.pyplot as plt
data_cube = []
for i in range(10):
a = np.random.rand(100,100)
data_cube.append(a)
data_cube = np.array(data_cube) # Added this step
plt.plot(data_cube[:,12,12]) # Modified the slicing
產量
一個不太冗長的版本,避免了迭代:
data_cube = np.random.rand(10, 100,100)
plt.plot(data_cube[:,12,12])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.