《Python数据分析》一2.9 基于位置列表的索引方法

简介:

本节书摘来自异步社区《Python数据分析》一书中的第2章,第2.9节,作者【印尼】Ivan Idris,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.9 基于位置列表的索引方法

下面利用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])
Out:
(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
相关文章
|
22天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
2月前
|
存储 Python
python列表操作和方法
python列表操作和方法
34 1
|
2月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(分组分析)
ChatGPT在常用的数据分析方法中的应用(分组分析)
64 1
|
2月前
|
数据挖掘 数据处理
ChatGPT在常用的数据分析方法中的应用(交叉分析)
ChatGPT在常用的数据分析方法中的应用(交叉分析)
44 1
|
2月前
|
存储 索引 Python
反转Python列表的4种方法
反转Python列表的4种方法
30 2
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
数据分析之旅:用Python探索世界
数据分析之旅:用Python探索世界
30 2
|
3月前
|
存储 数据处理 索引
Python列表操作的方法总结
通过掌握上述方法,你可以有效地操作Python列表,完成各种数据处理任务。列表的灵活性和多功能性使其成为Python编程中不可或缺的工具。
34 1
|
2月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(对比分析)
ChatGPT在常用的数据分析方法中的应用(对比分析)
52 0
|
3月前
|
SQL 数据采集 数据可视化
数据分析的方法
数据分析的方法
102 3
|
3月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【9月更文挑战第2天】数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
60 5