如何从二维数组中删除引号

问题描述

那里。我正在尝试删除以下输出的引号

[['40' '40']
 ['10' '10']
 ['200' '200']
 ['230' '231']
 ['40' '43 ']
 ['15' '45 ']
 ['220' '190']]

我想要以下输出

[[40 40]
 [10 10]
 [....]]

这是我的代码。我已经尝试了一段时间,但无法弄清楚。如果有人可以提供帮助,将不胜感激。

import numpy as np
import matplotlib.pyplot as plt

def extract_file(file_name):
    file = open(file_name,'r')
    lines = ([line.strip("\n").split(",") for line in file])
    x= np.array(lines)
    return x
t= extract_file("backyard.txt")

解决方法

@Barmar 评论,np.genfromtxt 可以使用

import numpy as np
import matplotlib.pyplot as plt

def extract_file():
    return np.genfromtxt('test.txt',delimiter=',')
print(extract_file())

输出:

[[ 40.  40.]
 [ 10.  10.]
 [200. 200.]
 [230. 231.]
 [ 40.  43.]
 [ 15.  45.]
 [220. 190.]]

Its,Float ,但我认为它会起作用,

>>>type(numpy.genfromtxt('test.txt',')[0][0])
<class 'numpy.float64'>
,

line.strip("\n").split(",") 返回一个字符串列表,因此您创建的是一个字符串数组,而不是整数。在创建数组之前将它们转换为整数。

lines = [list(map(int,line.strip("\n").split(","))) for line in file]