社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在python中将字符串值拆分为整数

muhammet dağaşan • 6 年前 • 1304 次点击  

我这里有一些不同的号码。每次都会改变。我需要创建一个多维数组
array[x][y] = & gt; 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(',')

我以前能找到号码 , 但它只显示在一行中。但是,我想从多维的角度来做。它应该将维度拆分为空 . 谢谢您。

输出应遵循

[[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]]
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38892
 
1304 次点击  
文章 [ 2 ]  |  最新文章 6 年前
Paresh
Reply   •   1 楼
Paresh    7 年前
import numpy as np

# read file and split over whitespace
with open('dat.xyz', 'r') as f:
    rows = f.read()
    rows = rows.split(' ')

arr = []

# split each value in row over comma, then convert each element to integer
for row in rows:
    row = row.split(',')
    for i in range(len(row)):
        row[i] = int(row[i])
    arr.append(row)

# convert to array
arr = np.array(arr)

arr

输出:

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]])
Eric Duminil
Reply   •   2 楼
Eric Duminil    7 年前

您应该首先围绕空格拆分以获取行,然后迭代这些行以获取单元格:

>>> 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']]

您还可以将这些单元格转换为整数:

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

还是让 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]])