如何在Python中从CSV导入数组数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Python中从CSV导入数组数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1694字,纯文字阅读大概需要3分钟。
内容图文
![如何在Python中从CSV导入数组数组](/upload/InfoBanner/zyjiaocheng/729/55d37d54bb7c440388e49e6ecf112537.jpg)
所以基本上我是Python的新手,而且我无法做到.我正在从CSV导入数据,我需要我的data_2d看起来像这样:
data_2d = [ [30, 15, 0, 15, 0, 0, 0],
[32, 10, 0,10, 3, 5, 0],
[5, 9, 0, 25, 10, 8, 3],
[22, 10, 0 ,17, 5, 6, 0],
[7, 15, 0, 30, 3, 5, 0]]
相反,使用我当前的代码,我得到这个:
[['30' '15' '0' '15' '0' '0' '0']
['32' '10' '0' '10' '3' '5' '0']
['5' '9' '0' '25' '10' '8' '3']
['22' '10' '0' '17' '5' '6' '0']
['7' '15' '0' '30' '3' '5' '0']]
我的代码在这里:
data_2d = [ [30, 15, 0, 15, 0, 0, 0],
[32, 10, 0,10, 3, 5, 0],
[5, 9, 0, 25, 10, 8, 3],
[22, 10, 0 ,17, 5, 6, 0],
[7, 15, 0, 30, 3, 5, 0]]
data_2d = []
with open('file.csv', newline='\n') as f:
reader = csv.reader(f, delimiter=';')
for row in reader:
data_2d.append(row)
data_array = np.array(data_2d)
data_array = np.delete(data_array, (0), axis=0)
data_array = np.delete(data_array, (0), axis=1)
print("data_array")
print(data_array)
CSV文件目前看起来像这样:
Time_Activity;SITTING;STANDING;LAYING;WALKING;WALKING_DOWNSTAIRS;WALKING_UPSTAIRS;RUNNING
8;30;15;0;15;0;0;0
9;32;10;0;10;3;5;0
10;5;9;0;25;10;8;3
11;22;10;0;17;5;6;0
12;7;15;0;30;3;5;0
解决方法:
要立即修复,请使用astype方法将字符串数组转换为int:
data_array = data_array.astype(int)
另外,np.delete效率低,不推荐;尽可能使用切片.以下是一些可以完全避免Python级循环的方法: –
numpy的
使用NumPy,您可以使用np.genfromtxt:
arr = np.genfromtxt('file.csv', delimiter=';', skip_header=1)[:, 1:]
大熊猫
或者,通过Pandas,您可以使用pd.read_csv:
arr = pd.read_csv('file.csv', sep=';').iloc[:, 1:].values
print(arr)
# array([[30, 15, 0, 15, 0, 0, 0],
# [32, 10, 0, 10, 3, 5, 0],
# [ 5, 9, 0, 25, 10, 8, 3],
# [22, 10, 0, 17, 5, 6, 0],
# [ 7, 15, 0, 30, 3, 5, 0]], dtype=int64)
内容总结
以上是互联网集市为您收集整理的如何在Python中从CSV导入数组数组全部内容,希望文章能够帮你解决如何在Python中从CSV导入数组数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。