numpy - array(4)

arr1 = np.array([[1, 2], [3, 4], [5, 6]])
(1)def insert(arr, obj, values, axis=None)    向array指定位置插入指定值
 axis为默认值None时,如果array是多维数据,则先将array转化成向量
 obj:插入的索引,接受int或者多个int的元组货列表。
 values:插入的值,接受单个或多个值,axis为默认值None时有以下情况:
   values:单个值,obj:单个值:    在原array索引处插入单个值
   values:多个值,obj:单个值:    在原array索引处插入多个值
   values:单个值,obj:多个值:    在原array多个索引处都插入单个值
   values:多个值,obj:多个值:    values数量与obj数量必须相等,在原array多个索引处插入相应的值
arr_insert1 = np.insert(arr1, [1], [10, 9])
arr_insert2 = np.insert(arr1, [1, 2], [10])
arr_insert3 = np.insert(arr1, [1, 2], [10, 9])
 axis:插入的维度,只接受单个int
 如果values是单个值,则插入的值尺寸自动匹配array在该维度的元素的尺寸,
 如果是多个值,则values的尺寸必须等于array在该维度的元素的尺寸
arr_insert4 = np.insert(arr1, 1, (9, 10, 11), 1)
arr_insert5 = np.insert(arr1, (1, 2), 10, 0)
arr_insert6 = np.insert(arr1, (1, 2), ((9, 10), (10, 11)), 0)
(2)vstack:向0维(fist axis)追加数据,0维尺寸会增加:
        def vstack(tup, *, dtype=None, casting="same_kind")
 tup = (目标array,追加array),追加array可以传多个array
 追加array与目标array必须有相同的维度,只在0维/fist axis 上的形状可以不同,其他维度形状必须相同
arr_vstack1 = np.vstack((arr1, [7, 8], (9, 9)))
arr_vstack2 = np.vstack((arr1, [(7, 8), (8, 9), (9, 10)]))
arr2 = np.array([[[1, 2], [3, 4], [5, 6]]])
 arr2是3维array,目标array也必须传3维array

arr_vstack3 = np.vstack((arr2, [[(7, 8), (8, 9), (9, 10)]], [[(7, 8), (8, 9), (9, 10)]]))  
(3)hstack:向1维(second axis)追加数据,1维尺寸会增加:
        def hstack(tup, *, dtype=None, casting="same_kind")
 tup = (传目标array,追加array),追加array可以传多个array
 追加array与目标array必须有相同的维度,只在1维/second axis 上的形状可以不同,其他维度形状必须相同
append_array1 = np.array((1, 1, 1))
append_array1 = append_array1.reshape(-1, 1)

arr_hstack1 = np.hstack((arr1, append_array1))

append_array2 = np.array((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1))
append_array2 = append_array2.reshape(3, -1, 2)

arr_hstack2 = np.hstack((arr_vstack3, append_array2))
(4) append:向指定轴追加数据
     def append(arr, values, axis=None)
 axis:如果“axis”不是给定的情况下,“arr”和“values”在使用前都是平坦的(就是转化为向量在操作)。
 追加array与目标array必须有相同的维度,只在轴上的形状可以不同,其他维度形状必须相同
arr_append1 = np.append(arr_vstack3, append_array2, 1)
arr_append2 = np.append(arr_vstack3, append_array3, axis=0)
arr_append3 = np.append(arr_vstack3, [[[11, 12]], [[12, 13]], [[13, 14]]], axis=1)

append_array3 = append_array2.reshape(-1, 3, 2)
arr_append4 = np.append(append_array2, 5)
(5)def delete(arr, obj, axis=None) 删除目标array指定轴(维度)指定索引的数据
 arr:目标array
 obj:要删除数据的索引,接收int或int元组,必须参数
 axis:要删除的数据所在的维度,只接受int。如果不传参,则会现将array转化为向量在做删除操作

arr_del1 = np.delete(arr_vstack3, 1)
arr_del2 = np.delete(arr_vstack3, (0, 1), axis=1)
(6)使用bool过滤进行指定删除,结果数据的最高维度自动降维为(目标array的最高维度 - 判断维度的最高维度)
arr3 = np.array([(1, 1, 1, 1), (2, 2, 0, 2), (3, 3, 3, 3), (4, 4, 0, 4)])
temp_bool1 = arr3[:, 2] == 0
arr_del_bool1 = arr3[~temp_bool1]
目标array最高维度是1,判断结果最高维度是0,结果数据最高维度是1

arr_vstack3[1, 1, 1] = 0
arr4 = arr_vstack3
temp_bool2 = arr4[:, :, :] == 0
arr_del_bool2 = arr4[~temp_bool2]
目标array最高维度是2,判断结果最高维度是2,结果数据最高维度是0


 
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chris Rookie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值