如何在列表指示的矩阵中打印出值

时间:2019-02-16 22:57:43

标签: python

很抱歉,如果这段代码不好,我对编码还很陌生。

所以我希望代码在第3行第4列打印出值,而不是在第2和3行打印出。

import numpy as np 
w = 8
l = 5
s = 2
board = np.arange(w*l)
board = board.reshape(l,w)
start = board[s,0]
currentpoint = start
print(board)
print()

def block_a(currentpoint):
  currentpoint = np.argwhere(board == currentpoint) + [0, 3]
  return currentpoint

currentpoint = np.hstack(block_a(currentpoint))
print(currentpoint)
print(board[currentpoint]) 


Expected : 19

Actual :   

[[16 17 18 19 20 21 22 23]

[24 25 26 27 28 29 30 31]]

1 个答案:

答案 0 :(得分:0)

当前 currentpoint 是一个由两个元素组成的数组[2,3]。当您使用此数组为木板索引时,这等效于使用 board [[2,3]] 。它将返回一个数组“行” 2和3。

print(board[currentpoint])
print("... and ...")
print(board[[2,3]]

[[16 17 18 19 20 21 22 23]
[24 25 26 27 28 29 30 31]]
... and ...
[[16 17 18 19 20 21 22 23]
[24 25 26 27 28 29 30 31]]

要访问 19 ,您需要索引您的木板,例如 board [x] [y] board [x,y] ,直接询问木板的x项和x的y项。  为此,您可以使用以下代码直接将其转换为currentpoint [2,3]。

print(board[currentpoint[0], currentpoint[1]])
print("... and ...")
print(board[2,3])

19
... and ...
19