【发布时间】:2018-09-13 02:55:50
【问题描述】:
我正在尝试逐行从 csv 加载数据,然后从每一行创建 2d 数组并将其存储在数组中:
正在加载:
with open('data_more.csv', newline='') as csvfile:
data = list(csv.reader(csvfile))
解析:
def getTrainingData():
label_data = []
for i in range( 0 , len(data) - 1):
y = list(data[i][1:41:1])
y = list(map(lambda x: list(map(lambda z: int(z),x)),y))
y = create2Darray(y)
label_data.append(y)
labelY = np.array(label_data,dtype=float)
create2Darray 函数:
def create2Darray( arr ):
final_arr = []
index = 0
while( index < len(arr)):
temp = arr[index:index+4:1]
final_arr.append(temp)
index+=4
return final_arr
这是一个简单的任务,但我不断收到错误:
ValueError: 使用序列设置数组元素。
我读过它与元素形状不同时的情况有关。但是,当我打印 labelY 内所有元素的形状时,它会输出相同的形状。
那么是什么导致了这个问题呢?问题出现在这一行
labelY = np.array(label_data,dtype=float)
我的 csv 有格式
number, number, number
行中基本上有 N 个数字,用“,”分隔,example 感谢您的帮助。
【问题讨论】:
-
你的变量
data是什么样的? -
你试过
np.genfromtxt吗? -
我的数据变量看起来像二维数组(至少在打印之后)
-
如何使用
pandas读取csv并执行操作,然后使用loc和iloc将它们切片成series,这将直接转换为np.array.您还可以使用.dropna()删除NoneType的任何值 -
@iam.Carrot 你介意举个例子吗?我对python不是很熟悉。谢谢
标签: python python-3.x numpy