import numpy as np
arr = np.array(
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
)
numpy中的切片和python列表中的切片操作相似
可以从大数组中切出小数组
# 取第二行
print(arr[1])
# 取第二列
print(arr[:,1])
# 取连续多行
print(arr[2:])
# 取连续多列
print(arr[:,2:])
# 取不连续行或者列
# 取1、3行
print(arr[[0,2]])
# 取1、3列
print(arr[:,[0,2]])
# 取多行多列
# 取第二行第二列
print(arr[1,1])
# 取第一行到第二行及第二列到第三列
print(arr[1:,1:])
# 使用步长
# 每隔一行一列取
print(arr[0:3:2,0:3:2])
通过切片可以获取指定的值,说明切片也是一种索引
# 布尔索引
print(arr<5)
# 取小于5的数据
print(arr[arr<5])
python中多个条件用and或者or
但numpy中需要用&或者 |
import numpy as np
# 三维数组
arr = np.array(
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
)
print(arr)
print("*"*15)
arr = arr[(arr>3) & ( arr<6)]
print(arr)
通过索引获取到指定位置的值,然后直接将其替换
# 把5替换为0
arr[1,1] = 0
print(arr)
在数组末尾追加元素
numpy.append(arr, values, axis=None)
参数 | 作用 |
---|---|
arr | 需要修改的数组 |
values | 增添的数据,必须和原数组形状相同 |
axis | 默认为 None,横向,返回一维数组,0则沿0轴方向增添元素,1则沿1轴方向增添元素 |
arr = np.append(arr,[0,0,0])
print(arr)
# 沿0轴添加元素
arr = np.append(arr,[[0,0,0]],axis=0)
print(arr)
print("*"*15)
# 沿1轴添加元素
arr = np.append(arr,[[0],[0],[0],[0]],axis=1)
print(arr)
沿指定轴将值插入到指定下标之前
np.insert(arr, obj, values, axis)
参数 | 作用 |
---|---|
arr | 需要修改的数组 |
obj | 在其之前插入值的索引 |
values | 插入的数据,必须和原数组形状相同 |
axis | 0则沿0轴方向插入元素,1则沿1轴方向插入元素 ,若没有指定,则展开数组 |
print(arr)
print("*"*15)
# 沿0轴插入,在第一行后面
arr = np.insert(arr,1,[9,9,9],axis=0)
print(arr)
print("*"*15)
# 沿1轴插入,在第一列后面
arr = np.insert(arr,1,[0,0,0,0],axis=1)
print(arr)
按照指定条件删除数组的指定元素
np.delete(arr, obj, axis)
参数 | 作用 |
---|---|
arr | 需要修改的数组 |
obj | 在其之前插入值的索引 |
values | 插入的数据,必须和原数组形状相同 |
axis | 0则沿0轴方向插入元素,1则沿1轴方向插入元素 ,若没有指定,则展开数组 |
# 删除第一行
arr = np.delete(arr,0,axis=0)
# 删除第一列
arr = np.delete(arr,0,axis=1)
去除数组中的重复元素,最后返回一个列表
np.unique(
arr, return_index=False, return_inverse=False, return_counts=False, axis=None)
参数 | 作用 |
---|---|
arr | 需要处理元素 |
return_index | 默认为false,true则返回新列表元素在旧列表中的位置(下标),列表顺序 |
return_inverse | 默认为false,true则返回旧列表元素在新列表中的位置(下标),列表顺序 |
return_counts | 默认为false,true则返回各个元素出现的次数 |
axis | 默认无,0则沿0轴方向插入元素,1则沿1轴方向插入元素 ,若没有指定,则展开数组 |
import numpy as np
arr = np.array(
[[1, 2, 7],
[4, 1, 6],
[7, 8, 9]]
)
print(arr)
print("*"*15)
# 去重
arr = np.unique(arr)
print(arr)
import numpy as np
arr = np.array(
[[1, 2, 7],
[4, 1, 6],
[7, 8, 9]]
)
print(arr)
print("*"*15)
# 去重
arr, index, inverse, counts = np.unique(arr,return_index=True,return_inverse=True,return_counts=True)
print(arr)
print("*"*15)
print(index)
print(inverse)
# 打印各个元素出现次数
print(counts)