【发布时间】:2014-02-06 10:03:36
【问题描述】:
在 OSX 上将 PyDev 与 Python 2.7 的 Eclipse 环境一起使用。试图计算数组中的元素并将数组中的元素相加。在索引上出现错误。
import numpy as np
import os
import sys
csv_file_object = fileName = os.path.join('train.csv')
print('Directory separator on your platform ({}): {}'.format(sys.platform, os.sep))
data=[]
for row in csv_file_object:
data.append(row)
data = np.array(data)
number_passengers = np.size(data[0::,0].astype(np.float))
number_survived = np.sum(data[0::,0].astype(np.float))
proportion_survivors = number_survived / number_passengers
Traceback (most recent call last):
File "/Users/scdavis6/Documents/Kaggle/Titanic1.py", line 14, in <module>
number_passengers = np.size(data[0::,0].astype(np.float))
IndexError: too many indices
如果我可以提供更多信息,请告诉我。
谢谢。
更新: 我创建了the edits,但又遇到了另一个关于模块不可调用的错误:
Traceback (most recent call last):
File "/Users/scdavis6/Documents/Kaggle/Titanic1.py", line 5, in <module>
csv_file_object = fileName = os.path('train.csv')
TypeError: 'module' object is not callable
更新: 我将 os.path('train.csv') 更改为 os.path.join('train.csv'),但出现另一个关于找不到 .csv 文件的错误。
Traceback (most recent call last):
File "/Users/scdavis6/Documents/Kaggle/Titanic1.py", line 9, in <module>
with open(fileName) as f:
IOError: [Errno 2] No such file or directory: 'train.csv'
这是 .csv 文件和 python 脚本的绝对路径。
import os
os.path.abspath("/Users/scdavis6/Desktop/train.csv")
'/Users/scdavis6/Desktop/train.csv'
import os
os.path.abspath("/Users/scdavis6/Documents/Kaggle/Titanic1.py")
'/Users/scdavis6/Documents/Kaggle/Titanic1.py'
【问题讨论】:
-
数据转换成np.array后的形状是什么? (打印 data.shape)
-
@Mailerdaimon print data.shape 命令给出:您平台上的目录分隔符 (darwin): / (9,)
-
@ScottDavis 看看下面我的回答。我认为您根本不读取文件,而只是拆分文件名,从而生成一维数组,这些复杂的 numpy 索引对此毫无意义。
-
因为(根据错误)您将
os.path.join('train.csv')更改为os.path('train.csv')。另外,请不要完全替换问题中的代码,而是在其下方添加更新版本,否则答案会看起来很尴尬。 -
@ScottDavis 查看我的更新。
标签: python-2.7 numpy pydev osx-mountain-lion kaggle