我使用以下代碼創建從一個三維陣列的2D摘要矩陣:添加文本列和行標頭numpy的陣列
numTests=len(TestIDs)
numColumns=11
numRows=6
SummaryMeansArray = p.array([])
summary3dArray = ma.zeros((numTests,numColumns,numRows))
j=0
for j in range(0,len(TestIDs)):
print 'j is: ',j
TestID=str(TestIDs[j])
print 'TestID is: ',TestID
reader=csv.reader(inputfile)
m=1
for row in reader:
if row[0]!='TestID':
summary3dArray[j,1,m] =row[2]
summary3dArray[j,2,m] =row[3]
summary3dArray[j,3,m] =row[4]
summary3dArray[j,4,m] =row[5]
summary3dArray[j,5,m] =row[6]
summary3dArray[j,6,m] =row[7]
summary3dArray[j,7,m] =row[8]
summary3dArray[j,8,m] =row[9]
summary3dArray[j,9,m] =row[10]
summary3dArray[j,10,m] =row[11]
m+=1
inputfile.close()
outputfile=open(outputFileName, "wb")
writer = csv.writer(outputfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
outputfile.close()
smith='test'
summary3dArray.mask = (summary3dArray.data == 0) # mask all data equal to zero
summaryMeansArray = mean(summary3dArray, axis=0) # the returned shape is (numColumns,numRows)
print 'SummaryMeansArray is: ',summaryMeansArray
通過打印2D矩陣返回的數據是:
SummaryMeansArray is: [[-- -- -- -- -- --]
[-- 0.872486111111 0.665114583333 0.578107142857 0.495854166667 0.531722222222]
[-- 69.6520408802 91.3136933451 106.82865123 125.834593798 112.847127834]
[-- 1.26883876577 1.64726525154 1.82965948427 1.93913919335 1.81572414167]
[-- 0.0707222222222 0.0696458333333 0.0654285714286 0.06196875 0.0669444444444]
[-- 0.219861111055 0.195958333333 0.179925 0.1641875 0.177]
[-- 0.290583333278 0.265604166667 0.245353571429 0.22615625 0.243944444444]
[-- 24.1924238322 23.4668576333 23.2784801383 22.8667912971 21.0416383955]
[-- 90.7234287345 108.496149905 112.364863351 113.57480005 144.061033524]
[-- 6.16448575902 9.7494285825 11.6270150699 13.5876342704 16.2569218735]
[-- 0.052665615304 0.069989497088 0.0783212378582 0.0846757181338 0.0862920065249]]
我有兩個問題:
1.)我想向summaryMeansArray添加文本行標題和列標題,但是現在我嘗試執行此操作時收到錯誤消息。 在此代碼中添加行標題和列標題的正確語法是什麼?
2)總結是指設置了11列6行的數組嗎?我的理解是正確的語法是列,行。但是,它似乎正在打印出11行6列以上的數據。這是否僅僅是因爲Python按照慣例將每列的數據分組在其自己的括號內?還是我搞砸了語法?
我明白第二個答案,並且會解決它。但是,你能否簡單地向我展示答案編號1的示例代碼?我觀看了關於在python中創建類的最後一個視頻,但這對我來說仍然是新的。 – MedicalMath 2010-10-11 22:07:17
可以將summaryMeansArray轉換爲常規python數組,然後爲列和行標題添加字符串值嗎?我用什麼語法? – MedicalMath 2010-10-11 22:42:28