将矩阵保存到数组中
Saving a matrix into an array
我想使用一些headers写在文本文件中的数据。该文件如下所示:
#Fruit list
#Prices from different vendors
Pineapple 4.49 4.29 5.19
Apple 1.99 1.89 2.19
Banana 1.99 1.99 1.79
Kiwi 2.99 2.99 2.99
我想将这个 table 保存到一个数组中。到目前为止我试过:
def fruits():
items = []
with open('prices.txt', 'r') as data:
for line in data.readlines()[2:]: #Header is always 2 lines
items.append(line.strip())
species = np.array(items)
return species
这 returns 是一个 0 维数组,而我期待的是一个二维数组。然后我尝试删除附加行(一开始似乎没有必要)并尝试:
def fruits():
items = []
with open('prices.txt', 'r') as data:
for line in data.readlines()[2:]:
species = np.array(line)
return species
但是这returns只是最后一行。它必须是一个非常简单的修复,但我很困惑,尤其是第二次尝试。
如果您对 pandas 和 numpy 持开放态度,那么:
import pandas as pd
import numpy
df=pd.read_csv("Filename",index_col=0)
df.to_numpy()
df.to_records() #if index is needed too
应该给你所需的数组形式的数据
示例:
鉴于此文件:https://file.io/5mc5MGnh0pZN
我写了以下内容来阅读它:
然后将df转换为numpy数组:
虽然@JALO - JusAnotherLivngOrgani 的答案有效,但我还想添加一个仅使用 numpy 的替代方案:
fruits = []
with open('File.txt') as data:
for line in data.readlines()[2:]: #Skipping the 2 line header
fruits.append(line)
string = [i for item in fruits for i in item.split()] # Gives a 1D list array.
string = np.array(string).reshape(-1,4) # Converts the list array into 2D numpy array.
文件始终为 4 列,但行数不同,因此 '-1' 处理它。
我想使用一些headers写在文本文件中的数据。该文件如下所示:
#Fruit list
#Prices from different vendors
Pineapple 4.49 4.29 5.19
Apple 1.99 1.89 2.19
Banana 1.99 1.99 1.79
Kiwi 2.99 2.99 2.99
我想将这个 table 保存到一个数组中。到目前为止我试过:
def fruits():
items = []
with open('prices.txt', 'r') as data:
for line in data.readlines()[2:]: #Header is always 2 lines
items.append(line.strip())
species = np.array(items)
return species
这 returns 是一个 0 维数组,而我期待的是一个二维数组。然后我尝试删除附加行(一开始似乎没有必要)并尝试:
def fruits():
items = []
with open('prices.txt', 'r') as data:
for line in data.readlines()[2:]:
species = np.array(line)
return species
但是这returns只是最后一行。它必须是一个非常简单的修复,但我很困惑,尤其是第二次尝试。
如果您对 pandas 和 numpy 持开放态度,那么:
import pandas as pd
import numpy
df=pd.read_csv("Filename",index_col=0)
df.to_numpy()
df.to_records() #if index is needed too
应该给你所需的数组形式的数据
示例: 鉴于此文件:https://file.io/5mc5MGnh0pZN
我写了以下内容来阅读它:
然后将df转换为numpy数组:
虽然@JALO - JusAnotherLivngOrgani 的答案有效,但我还想添加一个仅使用 numpy 的替代方案:
fruits = []
with open('File.txt') as data:
for line in data.readlines()[2:]: #Skipping the 2 line header
fruits.append(line)
string = [i for item in fruits for i in item.split()] # Gives a 1D list array.
string = np.array(string).reshape(-1,4) # Converts the list array into 2D numpy array.
文件始终为 4 列,但行数不同,因此 '-1' 处理它。