2017-10-16 89 views
-1

我剛開始使用python,並且已經學習了np數組。我想要做的是,將一個np列保存爲一個常量值。例如:如何在python變量中保存一列

import numpy as np 

SEA = np.array([:,4]) 

我正在做一個5x5的格子世界,我想I的值可以檢查如果玩家在土地第4列的任何地方,他們淹死和失敗,所以我可以檢查if State == SEA: break或類似的東西。

就目前而言,當我在終端中測試它時,上面的代碼是不正確的。但有一種方法來設定的常數作爲列還是我手動測試if State = [:, 4]

TL; DR是有沒有辦法保存[:,4]作爲常量變量

+0

'world [:,4]'是數組'world'的第4列。 '[:,4]'不允許作爲獨立對象;它僅用於索引實際數組。許多人需要回顧一些基本的Python語法和'numpy'概念。 – hpaulj

+0

如果你真的想要存儲一個slice對象,可以使用'slice(None,4)',但是你必須知道你在做什麼,我認爲你不這樣做。 –

+0

你爲什麼不做'a [:,3] =你的常量值。並且可以使用'numpy.any(state == a [:,3])'來檢查玩家是否在第4列。 –

回答

-1

考慮這個例子的代碼來獲得你開始了。

import numpy as np 

SEA_COLUMN = 3 
USER_POSITION_VALUE = 1 

def is_user_in_sea(list_array): 
    if USER_POSITION_VALUE in list_array[:, SEA_COLUMN]: 
     print('In Sea') 
    else: 
     print('Safe') 

list_array = np.zeros((5, 5), dtype = np.int32) 
list_array[1][2] = USER_POSITION_VALUE 
is_user_in_sea(list_array) 
# Safe 

list_array[4][SEA_COLUMN] = USER_POSITION_VALUE # Not resetting the old value 
is_user_in_sea(list_array) 
# In Sea 
相關問題