Python NumPy加载文本模式

Python NumPy加载文本模式,python,arrays,string,numpy,Python,Arrays,String,Numpy,我对NumPy和Python有点陌生。我有如下格式的字符串文本: lat0 37.792480, lon0 -122.397450 lat1 39.792480, lon1 -132.397450 我想将唯一的浮点数作为2d数组加载到数组中,第0列作为lat,第1列作为lan。这种数据加载的模式应该是什么。既然您提到了numpy,这是一种方式: import numpy as np lst = ['lat0 37.792480, lon0 -122.397450', 'lat

我对NumPy和Python有点陌生。我有如下格式的字符串文本:

lat0 37.792480, lon0 -122.397450
lat1 39.792480, lon1 -132.397450


我想将唯一的浮点数作为2d数组加载到数组中,第0列作为lat,第1列作为lan。这种数据加载的模式应该是什么。

既然您提到了
numpy
,这是一种方式:

import numpy as np

lst = ['lat0 37.792480, lon0 -122.397450',
       'lat1 39.792480, lon1 -132.397450']

res = np.array([[i.rsplit(None, 1)[-1] for i in x.split(',')] for x in lst]).astype(float)

# array([[  37.79248, -122.39745],
#        [  39.79248, -132.39745]])

如果您有类似的字符串
mytext.txt

lat0 37.792480,lon0-122.397450

lat1 39.792480,lon1-132.397450

您可以将文本文件中的输入读取到python程序
run.py
中,就像
python run.py

您还可以像python一样打开和读取文本文件

with open('mytext.txt') as f:
    text = f.readlines()
因为我最近一直在使用Python3的input(),所以我将解释如何使用该选项

但是,您需要知道mytext.txt中的行数,因为input()是逐行输入的

显然,在unix中,您可以为#行运行
wc-l

import numpy as np

coordinates = np.zeros([numlines, numlines])  # Instantiate array.

for i in range(numlines):
    data = input()  # How we can read text from standard input.
    data = data.split(',')  # Split by comma, giving ['latN float1', ' lonN float2']  

    lat = data[0].split()[1]  # Isolate 'latN float1', split by ' ', get 'float1'.
    lon = data[1].split()[1]  # Isolate 'lonN float2', split by ' ', get 'float2'.

    lat = float(lat)  # Convert from string to float.
    lon = float(lon)  # Convert from string to float.

    coordinates[i] = lat, lon  # Replace zeros with lat, lon
您将拥有一个numpy阵列:
数组([[lat0,lon0],[lat1,lon1],[latN,lonN]])

谢谢,我没有想到这种方法,我是朝着np.loadtxt的方向想的