簡體   English   中英

在函數中使用numpy ndarray

[英]Using a numpy ndarray in a function

我有以下代碼。 我有一個矩陣,我想一次取兩行並放入這些函數中。 我已經看過intertools,但不確定在這種情況下它們是否可以工作。 我嘗試過islice,但是沒有給出我想要的輸出。 我知道我必須給“方法”提供位置參數,但是我將它們省略了,因為這段代碼將給出結果,它們只是相同的min,max,而且一遍又一遍。 我正在嘗試的問題是給我有關索引錯誤和對象無法下標的問題。 我是python的新手,並且正在研究一些書,但是它們並沒有直接介紹。 我已經看過某些人在stackoverflow上尋找的東西,但是他們大多想一次讀取2行文件,而不是numpy ndarrays。 任何建議表示贊賞。

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

我不清楚您在做什么,也不了解您的代碼結構(此處提供的內容不是獨立的示例),但是代碼中的索引錯誤,而不是python / numpy的索引作品。

范圍vec [a:b]從vec中獲取ba個元素(不是b-a + 1!),從索引a開始到索引b-1結束。 您似乎在假設它將包含索引b的元素; 沒有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM