如何在python中的numpy 2d数组中逐行添加行?

时间:2019-05-27 08:05:09

标签: python arrays numpy

我需要使用numpy在python中的2d数组中逐行添加

def read_file(file):
    # open and read file
    file = open(file, "r")
    lines = file.readlines()
    file.close()
    # row and col count
    rows = len(lines)
    cols = len(lines[0]) - 1
    maze = np.zeros((rows, cols), dtype=int)
    for line in lines:
        maze = np.append(maze, line)
    return maze

首先,我读取一个文件并从该文件中获取行。然后,我使用行数和列数(由于末尾的'\ n'而为-1)来创建2d数组。然后我想将它们附加到数组中,但看起来确实很奇怪:

['0' '0' '0' ...
'* * * ******* *** * * * * *** ******* * * ***** *** * ***** *** *\n'
'* *           *   *     *     *       *       *       *        B*\n'
'*****************************************************************\n']
['0' '0' '0' ...
'* * * ******* *** * * * * *** ******* * * ***** *** * ***** *** *\n'
'* *           *   *     *     *       *       *       *        B*\n'
'*****************************************************************\n']

我在做什么错?错误在哪里?

预期的输出是2d数组(17,65)。 就像是: [[0,0,0,0,0 ... 0,0],[0,0,0,0 ...,0,0] ...] 等

我想从该文件生成一个数组:

*****************************************************************
*A  *         *         *     *                   *             *
*** * ***** * ******* *** *** * *************** * *********** * *
*   *     * *       *       * * *     *   *     *   *       * * *
* ******* * ******* ******* * * * ***** * * ******* * ***** *** *
*       * *   *           * * *   *   * * * *   *   * *   *     *
* ***** * *** *********** * * * *** * * * * * *** *** *** ***** *
* *   * *   *     *       * *   *   *   *   *   * *     *   *   *
*** * * *** ***** ******* ******* *** ******* * * *** * * *** ***
*   *     *   * *   *   *   *   * *   *     * * *   * * *   *   *
* ***** ***** * *** * * *** * * * ***** *** * * *** * * *** *** *
*   *   *     *   * * *   *   *   *     *   * *   * * *   *   * *
* * ***** ***** * * * *** * ******* ********* * * * ***** * * * *
* * *     *     * * * * * * *       *   *     * * * *     * * * *
* * * ******* *** * * * * *** ******* * * ***** *** * ***** *** *
* *           *   *     *     *       *       *       *        B*
*****************************************************************

每行都放在方括号[]中,并在换行之后出现新的方括号。

1 个答案:

答案 0 :(得分:1)

如果我说对了,您希望将numpy数组中的所有整数都填充为零。这就是我要做的。

# open and read file
file = open(data, "r")
lines = file.readlines()
file.close()
# row and col count
rows = len(lines)
cols = len(lines[0]) - 1
maze = np.zeros((rows, cols),dtype=str)

for index,line in enumerate(lines):
    for i in range(0,len(line)-1):
        maze[index][i]= line[i]

return maze

这将产生以下输出:

[['*' '*' '*' ... '*' '*' '*']
 ['*' 'A' ' ' ... ' ' ' ' '*']
 ['*' '*' '*' ... '*' ' ' '*']
 ...
 ['*' ' ' '*' ... '*' ' ' '*']
 ['*' ' ' '*' ... ' ' 'B' '*']
 ['*' '*' '*' ... '*' '*' '']]