鱼C论坛

 找回密码
 立即注册
查看: 5125|回复: 19

[技术交流] 08 - 从txt文档中读取Numpy数组|【布尔索引】

[复制链接]
发表于 2020-2-14 09:03:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-2-15 11:12 编辑

上一讲我们搞定二维数组的索引,切片和花式索引,对于多维数组 ix_ 方法完全可以通吃~

本讲来看如何从 txt 文档中读取 Numpy 数组。

先来把数据包准备好(nba 排名积分榜): nba.zip (595 Bytes, 下载次数: 30)

前面的操作我们都是通过“位置索引”来找到目标值。


布尔索引

通过下面的例子,我们先认识下布尔索引。

直接创建一个 0 到 99 的列表:
Snip20200214_437.png


通过 for in 循环找到 %3==0 的所有项,保存到新列表中:
Snip20200214_438.png


或者直接用我们讲过的列表生成式:
Snip20200214_439.png


讲到现在,鱼油应该有种感觉:

游客,如果您要查看本帖隐藏内容请回复

没有的话,看完应该也有了吧。

用 Numpy 方法建立一个数组:
arr = np.arange(100)
print(arr)
输出:
Snip20200215_440.png


找出能被 3 整除的元素,按照现有的知识分析下,既然 Numpy 主张简洁。

之前通过 arr * 2 实现每项都乘以 2 。

那么直接写成:
arr % 3 == 0
试一试:
Snip20200215_441.png


哎呦,输出的是 True 或 False,不错,离找出又近了一步。

看一下这样操作后结果的类型:
Snip20200215_442.png


然后我们可以按照这个数组布尔值为线索,找出 True 的项。

添加代码:
arr[arr%3==0]
输出:
Snip20200215_443.png


这不就找到结果啦?!

[] 中条件随便换,就会找到你需要的项。


调用本地文件

将上面的 txt 文件放在你记得的位置,为了方便,演示中放在和同级。

通过 Numpy 中的 genfromtxt('path/filename') 实现调用:
jfb = np.genfromtxt('nba.txt')
结果:
Snip20200215_444.png


nan 是什么东西?

not a number 的缩写,因为 txt 中这些位置的条件是中文,而 Numpy 中默认是数字。

如果需要中文可以:
Snip20200215_445.png


这样虽然变成中文,但里面的项值也成字符串了。

没关系,我们先把需要的胜率(04 列)和净胜(倒数 -2 )列拿出来:
arr2 = jfb[:,[4,-2]]
print(arr2)
输出:
Snip20200215_447.png


去掉第一行:
Snip20200215_448.png


清洗掉第一列的 % :
print (np.char.strip(arr3,'%'))
输出:
Snip20200215_449.png


通过 np.char.strip() 移除数组元素头尾的 % 字符。

然后需要将 str 类型 转换为 float:
arr4 = (np.char.strip(arr3,'%')).astype('f8')
arr4
输出:
Snip20200215_450.png


f8 就是 float64 的缩写。

这样就找到需要的数组了。

下一讲我们来讲深拷贝和浅拷贝

源代码: 08ImportTxt.zip (433 Bytes, 下载次数: 1, 售价: 4 鱼币)




如果有收获,别忘了评分


                               
登录/注册后可看大图


如果想看更多,请订阅 淘专辑传送门)(不喜欢更要订阅

评分

参与人数 2荣誉 +10 鱼币 +10 贡献 +3 收起 理由
Regina_Zhang + 5 + 5 + 3 无条件支持楼主!
zltzlt + 5 + 5

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-14 15:29:09 | 显示全部楼层
本帖最后由 zltzlt 于 2020-2-14 15:30 编辑

学习 Numpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 11:19:48 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 15:58:44 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 16:26:30 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-7 21:15:15 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 11:25:09 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 13:43:15 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 13:48:50 From FishC Mobile | 显示全部楼层
催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更催更
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 21:25:04 | 显示全部楼层
强,太有用了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-27 14:47:39 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 23:18:08 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-23 16:01:14 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-28 02:04:54 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-1 22:02:22 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-25 21:42:49 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 15:46:48 | 显示全部楼层
本帖最后由 小羊趴在云朵上 于 2021-11-29 15:49 编辑

我在运行上述程序时,总是出现错误,不知道哪里有问题[img]
UnicodeDecodeError这样的错误(图片不知道咋上传^_^)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 18:45:52 | 显示全部楼层
小羊趴在云朵上 发表于 2021-11-29 15:46
我在运行上述程序时,总是出现错误,不知道哪里有问题
UnicodeDecodeError这样的错误(图片不知道咋上传^_ ...

我会啦,嘻嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 20:28:32 | 显示全部楼层
这一节终于学会了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-8 20:00:24 | 显示全部楼层
NUmpy 令我快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-13 14:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表