muh*_*şan 1 python split multidimensional-array
我在这里有一些不同的号码.它每次都在变化.我需要创建一个多维数组,如
array[x][y]
=> x
应该通过拆分包含值,,
并且y
应该包含' '
空.
我怎样才能做到这一点 ?谢谢.
dat.xyz
2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9
output = open('dat.xyz', 'r') # See the r
output_list = output.read().strip().split(',')
Run Code Online (Sandbox Code Playgroud)
我之前可以找到数字,,
但它只显示一行.但是,我想做那个多维的.它应该拆分维度以查看空白' '
.谢谢.
输出应该遵循
[[2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
您应该首先围绕空格分割以获取行,然后迭代这些行以获取单元格:
>>> rows = "2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9 2,3,4,5,6,7,8,9".split(' ')
>>> rows
['2,3,4,5,6,7,8,9', '2,3,4,5,6,7,8,9', '2,3,4,5,6,7,8,9', '2,3,4,5,6,7,8,9']
>>> [row.split(',') for row in rows]
[['2', '3', '4', '5', '6', '7', '8', '9'], ['2', '3', '4', '5', '6', '7', '8', '9'], ['2', '3', '4', '5', '6', '7', '8', '9'], ['2', '3', '4', '5', '6', '7', '8', '9']]
Run Code Online (Sandbox Code Playgroud)
您还可以将这些单元格转换为整数:
>>> [[int(cell) for cell in row.split(',')] for row in rows]
[[2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
或者让numpy
你为你做转换:
>>> import numpy as np
>>> np.array([row.split(',') for row in rows], np.int)
array([[2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9],
[2, 3, 4, 5, 6, 7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)