往期数据分析笔记
【笔记】python数据分析——numpy初识1
【笔记】python数据分析——numpy初识2
【笔记】python数据分析——变换与编程中的轴
【笔记】python数据分析——numpy随机数函数
数组的索引与切片
- 一维数组索引与python列表相同
import numpy as np
arr1 = np.arange(12)
print(arr1)
print(arr1[0])
运行结果:
[ 0 1 2 3 4 5 6 7 8 9 10 11]
0
- 多维数组索引取出质的值,二维数组有两个质,若想取出二维数组的单个元素,先取出质的元素,再继续按照一维数组的方式取单个
arr1 = np.arange(12).reshape(3,4)
print(arr1)
print(arr1[1][3])
运行结果:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
7
多维数组的索引都是从内向外的,[1]的意思就是第二行,然后[1][3]就是第二行的第四个数
- 索引和切片都是作用在原数组上,原数组被改变
arr1[1][1] = 111
print(arr1)
运行结果:
[[ 0 1 2 3]
[ 4 111 6 7]
[ 8 9 10 11]]
- 用copy函数就可以复制一个新的数组,如果不想全部复制,可以按照切片的方式取一部分复制
arr2 = arr1.copy()
print(arr2)
arr3 = arr1[1].copy()
print(arr3)
运行结果:
[[ 0 1 2 3]
[ 4 111 6 7]
[ 8 9 10 11]]
[ 4 111 6 7]
花式索引
fruits=np.array(['apple','banana','apple','pear'])
print(fruits)
arr1=np.random.randint(-1,1,(4,4)) #生成-1到1四行四列的数组
print(arr1)
运行结果:
['apple' 'banana' 'apple' 'pear']
[[ 0 0 0 -1]
[ 0 0 0 0]
[-1 0 0 0]
[-1 -1 0 -1]]
我们这样创建之后,其实他们两个数组之间就有了一种对应关系,这个是一种隐形关系
apple对应[ 0 0 0 -1]
banana对应[ 0 0 0 0]
apple对应[-1 0 0 0]
pear对应[-1 -1 0 -1]
接下来我们试着取出apple对应的数组的值
print(arr1[fruits=='apple'])
运行结果:
[[ 0 0 0 -1]
[-1 0 0 0]]
当然,还有一种写法:
print(arr1[[0,2]])
运行结果:
[[ 0 0 0 -1]
[-1 0 0 0]]
今日鸡汤
每一条路都是荒径,每一个人都是过客,每一片记忆都是曾经。终于明白,有些路,只能一个人走。
|