0

次のコードがあります。一度に 2 つの行を取り、これらの関数に入れたい行列があります。インターツールを調べましたが、このインスタンスで機能するかどうかはわかりませんでした. islice を試してみましたが、必要な出力が得られませんでした。「メソッド」に位置引数を指定する必要があることはわかっていますが、このコードで結果が得られるため、省略しました。最小値、最大値などは同じです。私が試みていたのは、インデックスエラーと、オブジェクトが添え字付けできないという問題を私に与えていたことです。私はPythonが初めてで、いくつかの本を読んでいますが、これを直接カバーしていません。一部の人々がstackoverflowで探しているものを見てきましたが、ほとんどの人は、numpy ndarrayではなく、一度に2行ずつファイルを読みたいと思っています。任意の提案をいただければ幸いです。

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()))"""
4

1 に答える 1

1

あなたが何をしているのか私には明確ではなく、あなたのコードの構造を理解していません (ここで提供したものはスタンドアロンの例ではありません)。動作します。

範囲 vec[a:b] は、インデックス a で始まりインデックス b-1 で終わる、vec から ba 要素 (b-a+1 ではない!) を取ります。インデックス b の要素が含まれると想定しているようです。そうではありません。

于 2013-02-06T15:45:17.250 に答える