簡體   English   中英

從numpy數組中刪除一個子數組或將該子數組元素替換為0

[英]delete an subarray from an numpy array or replace that subarray elements with 0

我有一個數組'a',我通過選擇某些行和列來創建一個子數組,並將其稱為數組'b'。 我該如何刪除或替換“ a”中與“ b”中的元素相同的元素?

def seat():
    print("select your seat")
    import numpy as np
    a = np.arange(100).reshape(10, 10)
    print(a)
    l1=input("enter row number:")
    l1=int(l1)
    l=l1-1
    n1=input("enter the from column number:")
    n1=int(n1)
    n=n1-1
    p1=input("enter the to column number:")
    p1=int(p1)
    p=p1+1
    b=a[l:, n:p]
    k=b.size
    print("you have booked "+str(k)+"tickets")

    for element in b.flat:
        print("your ticket numbers are:"+ str(element))



    if a.size==0:
        print("there are no tickets left")
    return k;

您的代碼存在一些問題,還有改進的余地。 我看到的一個問題是您可能想要:

b=a[l, n:p]

代替

b=a[l:, n:p]

好吧,就是說,如果我對您要實現的目標的假設是正確的(您可以在問題中更清楚地知道這一點)。

其他改進包括在模塊級別導入,將功能內容限制為一個邏輯任務/目標,更好的命名約定等。您可以在codereview stackexchange上獲得更好的建議。

現在,如果要使用預訂的票證更新原始陣列a ,可以執行以下操作:

a[l, n:p] = -1  # -1 here signifies an unavailable seat.

然后通過檢查-1值來檢查座位是否可用。

我知道這應該是評論,而不是答案,但是我沒有足夠的代表來添加評論。

b=a[l:, n:p]

正如@ 0xc0de所指出的,對我來說似乎是錯誤的,應該是那樣的。

暫無
暫無

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

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