《Python数据分析》一2.9 基于位置列表的索引方法
2023-09-11 14:17:44 时间
本节书摘来自异步社区《Python数据分析》一书中的第2章,第2.9节,作者【印尼】Ivan Idris,更多章节内容可以访问云栖社区“异步社区”公众号查看
下面利用ix_()函数将莱娜照片中的像素完全打乱。注意,本例中的代码没有提供注释。完整的代码请参考本书代码包中的ix.py文件。
import scipy.misc import matplotlib.pyplot as plt import numpy as np lena = scipy.misc.lena() xmax = lena.shape[0] ymax = lena.shape[1] def shuffle_indices(size): arr = np.arange(size) np.random.shuffle(arr) return arr xindices = shuffle_indices(xmax) np.testing.assert_equal(len(xindices), xmax) yindices = shuffle_indices(ymax) np.testing.assert_equal(len(yindices), ymax) plt.imshow(lena[np.ix_(xindices, yindices)]) plt.show()
这个函数可以根据多个序列生成一个网格,它需要一个一维序列作为参数,并返回一个由NumPy数组构成的元组。
In : ix_([0,1], [2,3]) (array([[0],[1]]), array([[2, 3]]))
利用位置列表索引NumPy数组的过程如下所示。
1.打乱数组的索引。
用numpy.random子程序包中的shuffle()函数把数组中的元素按随机的索引号重新排列,使得数组产生相应的变化。
def shuffle_indices(size): arr = np.arange(size) np.random.shuffle(arr) return arr
2.使用下面的代码画出打乱后的索引。
plt.imshow(lena[np.ix_(xindices, yindices)])
3.莱娜照片的像素被完全打乱后,变成图2-6所示的样子。
![6252146f31b73899107508718a4705b026a969ef](https://yqfile.alicdn.com/6252146f31b73899107508718a4705b026a969ef.png)
关于 Python 列表操作,最常见问答Top10 列表是最常用的数据类型之一,本文整理了 StackOverflow 上关于列表操作被访问最多的10个问答,如果你在开发过程中遇到这些问题,不妨先思考一下如何解决。
【python进阶】你真的懂元组吗?不仅是“不可变的列表” 在学习python的过程中,我们对元组的第一印象就是”不可变的列表“,但其还有很多隐藏功能等待我们使用,本文带你一起解锁元组新玩法,打通python进阶的大门。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- Python 第二章-列表和元组
- Python中的列表List
- Python+NumPy绘制常见曲线的方法详解_python
- Python统计列表中的重复项出现的次数的方法
- Python 列表排序、list排序、字典排序、dict排序
- Python list合并(列表合并),dict合并(字典合并)
- 35岁了转行python可以吗?什么样的人合适学习Python?
- python中while循环打印星星的四种形状
- python中把列表中的字符串转成整型的几种方法
- python 中numpy dot函数的使用方法
- python 列表长度
- 如何在OpenCV Python中翻转图像?
- 【转载】python的魔法方法———A Guide to Python's Magic Methods
- python基础训练题1-列表操作
- python使用列表实现移动平均
- Python列表截取
- [Python] 实现字符串与列表数据去重
- [Python] 列表操作及方法总结