qianshang666 发表于 2021-3-9 00:51

【笔记】python数据分析——numpy数组索引及切片

## 往期数据分析笔记
[【笔记】python数据分析——numpy初识1](https://www.52pojie.cn/thread-1381772-1-1.html)
[【笔记】python数据分析——numpy初识2](https://www.52pojie.cn/thread-1382691-1-1.html)
[【笔记】python数据分析——变换与编程中的轴](https://www.52pojie.cn/thread-1383508-1-1.html)
[【笔记】python数据分析——numpy随机数函数](https://www.52pojie.cn/thread-1386199-1-1.html)
## 数组的索引与切片
- 一维数组索引与python列表相同
```
import numpy as np
arr1 = np.arange(12)
print(arr1)
print(arr1)
```
运行结果:
[ 0123456789 10 11]
0
- 多维数组索引取出质的值,二维数组有两个质,若想取出二维数组的单个元素,先取出质的元素,再继续按照一维数组的方式取单个
```
arr1 = np.arange(12).reshape(3,4)
print(arr1)
print(arr1)
```
运行结果:
[[ 0123]
[ 4567]
[ 89 10 11]]
7
多维数组的索引都是从内向外的,的意思就是第二行,然后就是第二行的第四个数
- 索引和切片都是作用在原数组上,原数组被改变
```
arr1 = 111
print(arr1)
```
运行结果:
[

]
- 用copy函数就可以复制一个新的数组,如果不想全部复制,可以按照切片的方式取一部分复制
```
arr2 = arr1.copy()
print(arr2)
arr3 = arr1.copy()
print(arr3)
```
运行结果:
[

]


## 花式索引
```
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']
[[ 000 -1]
[ 0000]
[-1000]
[-1 -10 -1]]
我们这样创建之后,其实他们两个数组之间就有了一种对应关系,这个是一种隐形关系
apple对应[ 000 -1]
banana对应[ 0000]
apple对应[-1000]
pear对应[-1 -10 -1]

接下来我们试着取出apple对应的数组的值
```
print(arr1)
```
运行结果:
[[ 000 -1]
[-1000]]

当然,还有一种写法:
```
print(arr1[])
```
运行结果:
[[ 000 -1]
[-1000]]
## 今日鸡汤
每一条路都是荒径,每一个人都是过客,每一片记忆都是曾经。终于明白,有些路,只能一个人走。

bug132294 发表于 2021-3-9 08:50

正在学习,果断收藏。

qianshang666 发表于 2021-3-9 08:54

bug132294 发表于 2021-3-9 08:50
正在学习,果断收藏。

大家共同学习,共同进步

easthq 发表于 2021-3-9 10:07

切片原来是从一维到多维的意思。。。

qianshang666 发表于 2021-3-9 10:59

easthq 发表于 2021-3-9 10:07
切片原来是从一维到多维的意思。。。

是我哪部分有问题吗,我也只是自学,按照我自己理解写的笔记,有问题也希望大佬能够指出来{:1_893:}

easthq 发表于 2021-3-9 15:29

qianshang666 发表于 2021-3-9 10:59
是我哪部分有问题吗,我也只是自学,按照我自己理解写的笔记,有问题也希望大佬能够指出来

没有没有,最近看了一个程序切片的论文脑子糊涂了
页: [1]
查看完整版本: 【笔记】python数据分析——numpy数组索引及切片