3月25日复盘

第十二天!

Numpy库后续

10.数组元素的增删改查

10.1 resize

函数名称 参数 说明
resize(a, new_shape) a:操作的数组 new_shape:返回的数组的形状,如果元素数量不够,重复数组元素来填充新的形状 返回指定形状的新数组

案例:

import numpy as np
​
array_one = np.arange(6).reshape(2, 3)
print(array_one)
print('resize 后数组:\n', np.resize(array_one, (3, 4)))
​
# 输出:
# [[0 1 2 3]
#  [4 5 0 1]
#  [2 3 4 5]]

最后一行代码将数组形状修改为(3, 4),原数组的元素数量不够,则重复原数组的元素填充。

10.2 append

函数名称 参数 说明
append(arr, values, axis=None) arr:输入的数组 values:向 arr 数组中添加的值,需要和 arr 数组的形状保持一致 axis:默认为 None,返回的是一维数组;当 axis =0 时,追加的值会被添加到行,而列数保持不变,若 axis=1 则与其恰好相反 在数组的末尾添加值,返回一个一维数组

案例:

'''
    append(arr, values, axis=None) 函数:
        1、将元素值添加到数组的末尾,返回一个一维数组
        2、arr:输入的数组
        3、values:向 arr 数组中添加的值,需要和 arr 数组的形状保持一致
        4、axis:默认为 None,返回的是一维数组;当 axis =0 时,追加的值会被添加到行,而列数保持不变,若 axis=1 则与其恰好相反
'''
def append_test():
    array_one = np.arange(6).reshape(2,3)
    print('原数组:\n', array_one)
    array_two = np.append(array_one,[[1,1,1],[1,1,1]],axis=None)
    print('append 后数组 axis=None:\n', array_two)
    array_three = np.append(array_one, [[1, 1, 1], [1, 1, 1]], axis=0)
    print('append 后数组 axis=0:\n', array_three)
    array_three = np.append(array_one, [[1, 1, 1], [1, 1, 1]], axis=1)
    print('append 后数组 axis=1:\n', array_three)

10.3 insert

函数名称 参数 说明
insert(arr, obj, values, axis) arr:输入的数组 obj:表示索引值,在该索引值之前插入 values 值 values:要插入的值 axis:默认为 None,返回的是一维数组;当 axis =0 时,追加的值会被添加到行,而列数保持不变,若 axis=1 则与其恰好相反 沿规定的轴将元素值插入到指定的元素前

案例:

import numpy as np
​
def insert_test():
    array_one = np.arange(6).reshape(2,3)
    print('原数组:\n', array_one)
    array_two = np.insert(array_one, 1, [6],axis=None)
    print('insert 后数组 axis=None:\n', array_two)
    # 在索引为1的行插入[6],并自动广播
    array_three = np.insert(array_one,1, [6], axis=0)
    print('insert 后数组 axis=0:\n', array_three)
    # 在索引为1的列插入[6],并自动广播
    array_three = np.insert(array_one, 1, [6], axis=1)
    print('insert 后数组 axis=1:\n', array_three)
    
    array_three = np.insert(array_one, 1, [6,7], axis=1)
    print('insert 后数组 axis=1:\n', array_three)
    
    # 在列上插入数组的形状和原数组列的形状不一致
    # ValueError: could not broadcast input array from shape (3,1) into shape (2,1)
    array_three = np.insert(array_one, 1, [6,7,8], axis=1)
    print('insert 后数组 axis=1:\n', array_three)

如果obj为-1,表示插入在倒数第一个元素之前,不是在最后一列

array_three = np.insert(array_one, -1, [6,7], axis=1)
print('insert 后数组 axis=1:\n', array_three)
​
#输出:
 [[0 1 6 2]
 [3 4 7 5]]

10.4 delete

函数名称 参数 说明
delete(arr, obj, axis) arr:输入的数组 obj:表示索引值,要删除数据的索引 axis:默认为 None,返回的是一维数组;当 axis =0 时,删除指定的行,若 axis=1 则与其恰好相反 删掉某个轴上的子数组,并返回删除后的新数组

案例:

一维数组:

import numpy as np
​
# 创建一个 NumPy 数组
arr = np.array([1, 2, 3, 4, 5, 6])
​
# 删除索引为 2 和 4 的元素
new_arr = np.delete(arr, [2, 4])
​
print(new_arr)

二维数组:

import numpy as np
​
​
def delete_test():
    array_one = np.arange(6).reshape(2,3)
    print('原数组:\n', array_one)
    array_two = np.delete(array_one,1,axis=None)
    print('delete 后数组 axis=None:\n', array_two)
    array_three = np.delete(array_one,1, axis=0)
    print('delete 后数组 axis=0:\n', array_three)
    array_three = np.delete(array_one, 1, axis=1)
    print('delete 后数组 axis=1:\n', array_three)

10.5 argwhere

返回数组中非 0 元素的索引,若是多维数组则返回行、列索引组成的索引坐标

案例:

import numpy as np
​
'''
    argwhere

你可能感兴趣的:(正式复盘,numpy,python,开发语言)