[英]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.