我有以下代碼。我有一個矩陣,我想每次取兩行並放入這些函數中。我通過intertools看過,但我不確定他們是否會在這種情況下工作。我嘗試了islice,但它沒有提供我想要的輸出。我知道我必須給'方法'提供位置參數,但是我已經把它們留下了,因爲這些代碼會給出結果,它們只是相同的最小值,最大值等等。我正在嘗試給我的關於索引錯誤的問題,以及對象不能被下載。我是python的新手,我正在通過一些書籍,但他們沒有直接介紹。我查看了一些人在尋找stackoverflow,但他們大多希望一次讀入2行文件,而不是numpy ndarrays。任何建議表示讚賞。在函數中使用numpy ndarray
import numpy as np
def xmax():
for i in range(1):
setOne = (matrix[i:1])
setTwo = (matrix[i+1:2])
if setOne[i][0:1] > setTwo[i][0:1]:
xMax = setOne[i][0:1]
else:
xMax = setTwo[i][0:1]
return(xMax)
def xmin():
for i in range(1):
setOne = (matrix[i:1])
setTwo = (matrix[i+1:2])
if setOne[i][0:1] < setTwo[i][0:1]:
xMin = setOne[i][0:1]
else:
xMin = setTwo[i][0:1]
return(xMin)
def ymax():
for i in range(1):
setOne = (matrix[i:1])
setTwo = (matrix[i+1:2])
if setOne[i][1:2] > setTwo[i][1:2]:
yMax = setOne[i][1:2]
else:
yMax = setTwo[i][1:2]
return(yMax)
def ymin():
for i in range(1):
setOne = (matrix[i:1])
setTwo = (matrix[i+1:2])
if setOne[i][1:2] < setTwo[i][1:2]:
yMin = setOne[i][1:2]
else:
yMin = setTwo[i][1:2]
return(yMin)
def zmax():
for i in range(1):
setOne = (matrix[i:1])
setTwo = (matrix[i+2:3])
if setOne[i][2:3] > setTwo[i][2:3]:
zMax = setOne[i][2:3]
else:
zMax = setTwo[i][2:3]
return(zMax)
def zmin():
for i in range(1):
setOne = (matrix[i:1])
setTwo = (matrix[i+2:3])
if setOne[i][2:3] < setTwo[i][2:3]:
zMin = setOne[i][2:3]
else:
zMin = setTwo[i][2:3]
return(zMin)
'''***********************************************************************************
Created on Jan 27, 2013
@author:
***********************************************************************************'''
f ='/Users/Documents/workspace/findMinMax/crapc.txt'
x,y,z = np.loadtxt(f, unpack=True, usecols=(1,2,3), ndmin = 2)
maxZ = max(z)
minZ = min(z)
print("Maximum Z value: " + str(maxZ))
print("Minimum Z value: " + str(minZ))
matrix = [x,y,z]
matrix = np.rot90(matrix)
matrix = matrix[::-1]
"""for each_row in range(0,len(matrix)-1,2):
print("Xmax:" + str(xmax()))
print("Xmin:" + str(xmin()))
print("Ymax:" + str(ymax()))
print("Ymin:" + str(ymin()))
print("Zmax:" + str(zmax()))
print("Zmin:" + str(zmin()))"""
1)你究竟想要達到什麼目的? 2)'範圍(1)'上的循環是什麼 - 它們只包含一個零值。 –
確實不清楚你想要做什麼。如果你想要最小或最大的numpy ndarray,請嘗試使用['min'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.amin.html#numpy.amin)和['max'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.amax.html#numpy.amax)函數,即'numpy.max(z)'或甚至'z。 MAX()'。該文檔顯示瞭如何獲取每列或每行的最大值(使用'axis'關鍵字)。 – Tim