函数名称 描述说明
resize 返回指定形状的新数组
append 将元素值添加到数组的末尾
insert 沿规定的轴将元素值插入到指定的元素前
delete 删掉某个轴上的子数组,并返回删除后的新数组
argwhere 返回数组内符合条件的元素的索引值
unique 用于删除数组中重复的元素,并按元素值由大到小返回一个新数组

resize

  1. numpy.resize(arr, shape)
  1. import numpy as np
  2. a = np.array([[1, 2, 3], [4, 5, 6]])
  3. print(a)
  4. # a数组的形状
  5. print(a.shape)
  6. b = np.resize(a, (3, 2))
  7. # b数组
  8. print(b)
  9. # b数组的形状
  10. print(b.shape)
  11. # 修改b数组使其形状大于原始数组
  12. b = np.resize(a, (4, 3))
  13. print(b)
  14. # 输出结果如下:
  15. """
  16. [[1 2 3]
  17. [4 5 6]]
  18. (2, 3)
  19. [[1 2]
  20. [3 4]
  21. [5 6]]
  22. (3, 2)
  23. [[1 2 3]
  24. [4 5 6]
  25. [1 2 3]
  26. [4 5 6]]
  27. """

resize()reshape()的区别

  • resize()仅对原数组进行修改,没有返回值
  • reshape()不仅对原数组进行修改,同时返回修改后的结果
    1. arr.resize(新数组维度)
    2. 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]] “””

  1. <a name="pPf3C"></a>
  2. # `insert`插入
  3. 表示沿指定的轴,**在给定索引值的前一个位置插入相应的值**,如果**没有提供轴**,则**输入数组被展开为一位数组**。
  4. ```python
  5. numpy.insert(arr, obj, values, axis)
  6. 其中:
  7. * arr:要输入的数组
  8. * obj:表示索引值,在该索引值之前插入values值
  9. * values:要插入的值
  10. * axis:指定轴,未提供,输入数组会被展开为一位数组
  1. import numpy as np
  2. a = np.array([[1, 2], [3, 4], [5, 6]])
  3. # 不提供axis的情况,会将数组展开
  4. print(np.insert(a, 3, [11, 12]))
  5. # 沿轴 0 垂直方向
  6. print(np.insert(a, 1, [11], axis=0))
  7. # 沿轴 1 水平方向
  8. print(np.insert(a, 1, [11], axis=1))
  9. # 输出结果如下:
  10. """
  11. [ 1 2 3 11 12 4 5 6]
  12. [[ 1 2]
  13. [11 11]
  14. [ 3 4]
  15. [ 5 6]]
  16. [[ 1 11 2]
  17. [ 3 11 4]
  18. [ 5 11 6]]
  19. """

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] “””

  1. <a name="Ykrcf"></a>
  2. # `argwhere`查找索引
  3. 该函数**返回数组中非**`**0**`**元素的索引**,**若是多维数组,则返回行、列索引组成的索引坐标**。
  4. ```python
  5. import numpy as np
  6. x = np.arange(6).reshape(2, 3)
  7. print(x)
  8. # 返回所有大于1的元素索引
  9. y = np.argwhere(x > 1)
  10. print(y)
  11. # 输出结果如下:
  12. """
  13. [[0 1 2]
  14. [3 4 5]]
  15. [[0 2]
  16. [1 0]
  17. [1 1]
  18. [1 2]]
  19. """

unique去重

  1. numpy.unique(arr, return_index, return_inverse, return_counts)
  2. 其中:
  3. * arr:输入数组,若是多维数组则以一维数组形式展开;
  4. * return_index:如果为 True,则返回新数组元素在原数组中的位置(索引);
  5. * return_inverse:如果为 True,则返回原数组元素在新数组中的位置(索引);
  6. * return_counts:如果为 True,则返回去重后的数组元素在原数组中出现的次数。
  1. import numpy as np
  2. a = np.array([5, 2, 6, 2, 7, 5, 6, 8, 2, 9])
  3. print(a)
  4. # 对a数组的去重
  5. uq = np.unique(a)
  6. print(uq)
  7. # 数组去重后的索引数组
  8. u, indices = np.unique(a, return_index=True)
  9. # 打印去重后数组的索引
  10. print(indices)
  11. # 去重数组的下标:
  12. ui, indices = np.unique(a, return_inverse=True)
  13. print(ui)
  14. # 打印下标
  15. print(indices)
  16. # 返回去重元素的重复数量
  17. uc, indices = np.unique(a, return_counts=True)
  18. print(uc)
  19. # 元素出现次数:
  20. print(indices)
  21. # 输出结果如下:
  22. """
  23. [5 2 6 2 7 5 6 8 2 9]
  24. [2 5 6 7 8 9]
  25. [1 0 2 4 7 9]
  26. [2 5 6 7 8 9]
  27. [1 0 2 0 3 1 2 4 0 5]
  28. [2 5 6 7 8 9]
  29. [3 2 2 1 1 1]
  30. """