这一节的学习会是比较轻松的,前提是你对python列表的索引与切片操作非常熟练,在这方面,你完全可以照搬照抄python列表的操作
使用numpy索引,你可以获取指定索引位置的值,下面分别演示通过索引获取一维数组和二维数组指定索引位置的值
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6])
print(array[0]) # 正向索引 2
print(array[-1]) # 反向索引 6
array_2d = array.reshape((2, 3))
print(array_2d)
print(array_2d[1][2]) # 6
同样的,也可以通过索引来修改数组里的元素
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6])
array[0] = 100
array[-1] = 101
print(array)
print("*"*20)
array_2d = array.reshape((2, 3))
array_2d[0][0] = 200
print(array_2d)
程序输出
[100 2 3 4 5 101]
********************
[[200 2 3]
[ 4 5 101]]
怎么对python列表做切片操作,就怎么对numpy数组做切片操作,一样一样的
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6])
array_1 = array[1:3]
print(array_1) # [2 3]
对于二维的数组,我们要在不同的维度上进行切片
import numpy as np
array = np.arange(1, 10)
array = array.reshape((3, 3))
print(array)
array_1 = array[0:2, 1:3] # 从第0行到第1行, 从第1列到第2列
print(array_1)
切片的区间是左闭右开的[start, end), 0:2 表示从索引0到索引1,索引2是不会到达的, 切出来的结果是
[[1 2 3]
[4 5 6]
[7 8 9]]
[[2 3]
[5 6]]
同python的列表一样,ndarray也支持迭代
import numpy as pd
array = pd.arange(10)
for item in array:
print(item)
这样的遍历和遍历列表没有任何区别,下面是一个遍历二维数组的例子
import numpy as pd
array = pd.arange(10)
array = array.reshape((2, 5))
for item in array:
print(item)
程序输出
[0 1 2 3 4]
[5 6 7 8 9]
QQ交流群: 211426309