| 函数名称 | 描述说明 |
|---|---|
| resize | 返回指定形状的新数组。 |
| append | 将元素值添加到数组的末尾。 |
| insert | 沿规定的轴将元素值插入到指定的元素前。 |
| delete | 删掉某个轴上的子数组,并返回删除后的新数组。 |
| argwhere | 返回数组内符合条件的元素的索引值。 |
| unique | 用于删除数组中重复的元素,并按元素值由大到小返回一个新数组。 |
resize
numpy.resize(arr, shape)
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6]])print(a)# a数组的形状print(a.shape)b = np.resize(a, (3, 2))# b数组print(b)# b数组的形状print(b.shape)# 修改b数组使其形状大于原始数组b = np.resize(a, (4, 3))print(b)# 输出结果如下:"""[[1 2 3][4 5 6]](2, 3)[[1 2][3 4][5 6]](3, 2)[[1 2 3][4 5 6][1 2 3][4 5 6]]"""
resize()和reshape()的区别
resize()仅对原数组进行修改,没有返回值;reshape()不仅对原数组进行修改,同时返回修改后的结果。arr.resize(新数组维度)或arr.reshape(新数组维度)
在数组末尾添加值,默认返回一个一维数组,由append追加**axis**参数决定。 ```python numpy.append(arr, values, axis=None)
其中:
- arr:输入的数组
- values:向arr中添加的值,需要与arr数组的形状保持一致
- axis:默认为None,返回的是一维数组;
当axis=0时,追加的值会被添加到行;当axis=1时,追加的值被添加到列
python import numpy as np
a = np.array([[1,2,3],[4,5,6]])
向数组a添加元素
print (np.append(a, [7,8,9]))
沿轴 0 添加元素
print (np.append(a, [[7,8,9]],axis = 0))
沿轴 1 添加元素
print (np.append(a, [[5,5,5],[7,8,9]],axis = 1))
输出结果如下:
“”” [1 2 3 4 5 6 7 8 9] [[1 2 3] [4 5 6] [7 8 9]] [[1 2 3 5 5 5] [4 5 6 7 8 9]] “””
<a name="pPf3C"></a># `insert`插入表示沿指定的轴,**在给定索引值的前一个位置插入相应的值**,如果**没有提供轴**,则**输入数组被展开为一位数组**。```pythonnumpy.insert(arr, obj, values, axis)其中:* arr:要输入的数组* obj:表示索引值,在该索引值之前插入values值* values:要插入的值* axis:指定轴,未提供,输入数组会被展开为一位数组
import numpy as npa = np.array([[1, 2], [3, 4], [5, 6]])# 不提供axis的情况,会将数组展开print(np.insert(a, 3, [11, 12]))# 沿轴 0 垂直方向print(np.insert(a, 1, [11], axis=0))# 沿轴 1 水平方向print(np.insert(a, 1, [11], axis=1))# 输出结果如下:"""[ 1 2 3 11 12 4 5 6][[ 1 2][11 11][ 3 4][ 5 6]][[ 1 11 2][ 3 11 4][ 5 11 6]]"""
delete删除
该方法表示从输入数组中删除指定的子数组,并返回一个新数组。
- 与
insert()方法类似,若不提供**axis**参数,则输入数组被展开为一维数组。 ```python numpy.delete(arr, obj, axis)
其中:
- arr:要输入的数组
- obj:整数或整数数组,表示要被删除数组元素或子数组
- axis:沿着哪条轴删除子数组
python import numpy as np
a = np.arange(12).reshape(3, 4)
a数组
print(a)
不提供axis参数情况
print(np.delete(a, 5))
删除第二列
print(np.delete(a, 1, axis=1))
删除经切片后的数组
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(np.delete(a, np.s_[::2]))
输出结果如下:
“”” [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [ 0 1 2 3 4 6 7 8 9 10 11] [[ 0 2 3] [ 4 6 7] [ 8 10 11]] [ 2 4 6 8 10] “””
<a name="Ykrcf"></a># `argwhere`查找索引该函数**返回数组中非**`**0**`**元素的索引**,**若是多维数组,则返回行、列索引组成的索引坐标**。```pythonimport numpy as npx = np.arange(6).reshape(2, 3)print(x)# 返回所有大于1的元素索引y = np.argwhere(x > 1)print(y)# 输出结果如下:"""[[0 1 2][3 4 5]][[0 2][1 0][1 1][1 2]]"""
unique去重
numpy.unique(arr, return_index, return_inverse, return_counts)其中:* arr:输入数组,若是多维数组则以一维数组形式展开;* return_index:如果为 True,则返回新数组元素在原数组中的位置(索引);* return_inverse:如果为 True,则返回原数组元素在新数组中的位置(索引);* return_counts:如果为 True,则返回去重后的数组元素在原数组中出现的次数。
import numpy as npa = np.array([5, 2, 6, 2, 7, 5, 6, 8, 2, 9])print(a)# 对a数组的去重uq = np.unique(a)print(uq)# 数组去重后的索引数组u, indices = np.unique(a, return_index=True)# 打印去重后数组的索引print(indices)# 去重数组的下标:ui, indices = np.unique(a, return_inverse=True)print(ui)# 打印下标print(indices)# 返回去重元素的重复数量uc, indices = np.unique(a, return_counts=True)print(uc)# 元素出现次数:print(indices)# 输出结果如下:"""[5 2 6 2 7 5 6 8 2 9][2 5 6 7 8 9][1 0 2 4 7 9][2 5 6 7 8 9][1 0 2 0 3 1 2 4 0 5][2 5 6 7 8 9][3 2 2 1 1 1]"""
