网站制作自学网代做网站转账截图

张小明 2026/1/8 18:30:12
网站制作自学网,代做网站转账截图,拍卖网站开发,网站建设网页设计小江索引 副本和视图 在 Numpy 中#xff0c;尤其是在做数组运算或数组操作时#xff0c;返回结果不是数组的 副本 就是 视图。 在 Numpy 中#xff0c;所有赋值运算不会为数组和数组中的任何元素创建副本。 numpy.ndarray.copy() 函数创建一个副本。 对副本数据进行修改#x…索引副本和视图在 Numpy 中尤其是在做数组运算或数组操作时返回结果不是数组的副本就是视图。在 Numpy 中所有赋值运算不会为数组和数组中的任何元素创建副本。numpy.ndarray.copy() 函数创建一个副本。 对副本数据进行修改不会影响到原始数据它们物理内存不在同一位置。importnumpyasnp xnp.array([1,2,3,4,5,6,7,8])print(x)#[1 2 3 4 5 6 7 8]yx y[0]-1print(y)#[-1 2 3 4 5 6 7 8]xnp.array([1,2,3,4,5,6,7,8])yx.copy()y[0]-1print(x)#[1 2 3 4 5 6 7 8]print(y)#[-1 2 3 4 5 6 7 8]数组切片操作返回的对象只是原数组的视图。索引和切片数组索引机制指的是用方括号[]加序号的形式引用单个数组元素它的用处很多比如抽取元素选取数组的几个元素甚至为其赋一个新值。整数索引要获取数组的单个元素指定元素的索引即可。importnumpyasnp xnp.array([1,2,3,4,5,6,7,8])print(x[2])#3xnp.arange(11,36).reshape((5,5))print(x[2])#[21 22 23 24 25]print(x[2][1])#22print(x[2,1])#22切片索引切片操作是指抽取数组的一部分元素生成新数组。对 python列表进行切片操作得到的数组是原数组的副本而对Numpy数据进行切片操作得到的数组则是指向相同缓冲区的图。如果想抽取或查看数组的一部分必须使用切片语法也就是把几个用冒号start:stop:step隔开的数字置于方括号内。importnumpyasnp xnp.array([1,2,3,4,5,6,7,8])print(x[0:2])#[1 2]print(x[1:5:2])#[2 4]print(x[:2])#[1 2]print(x[2:])#[3 4 5 6 7 8]print(x[-2:])#[7 8]print(x[:-2])#[1 2 3 4 5 6]print(x[:])#[1 2 3 4 5 6 7 8]print(x[::-1])#[8 7 6 5 4 3 2 1]ynp.arange(11,36).reshape((5,5))print(y[0:2])#[[11 12 13 14 15]# [16 17 18 19 20]]print(y[1:5:2])#[[16 17 18 19 20]# [26 27 28 29 30]]print(y[:2])#[[11 12 13 14 15]# [16 17 18 19 20]]print(y[2:])#[[21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]print(y[:-2])#[[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]]print(y[-2:])#[[26 27 28 29 30]# [31 32 33 34 35]]print(y[:])#[[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]print(y[2,:])#[21 22 23 24 25]print(y[:,2])#[13 18 23 28 33]print(y[0,1:4])#[12 13 14]print(y[1:4,0])#[16 21 26]print(y[1:3,2:4])#[[18 19]# [23 24]]print(y[:,:])#[[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]print(y[::2,::2])#[[11 13 15]# [21 23 25]# [31 33 35]]print(y[::-1,:])#[[31 32 33 34 35]# [26 27 28 29 30]# [21 22 23 24 25]# [16 17 18 19 20]# [11 12 13 14 15]]print(y[:,::-1])#[[15 14 13 12 11]# [20 19 18 17 16]# [25 24 23 22 21]# [30 29 28 27 26]# [35 34 33 32 31]]通过对每个以逗号分隔的维度执行单独的切片你可以对多维数组进行切片。因此对于二维数组我们的第一片定义了行的切片第二片定义了列的切片。importnumpyasnp xnp.arange(11,36).reshape((5,5))print(x)#[[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]x[0::2,1::3]0print(x)#[[11 0 13 14 0]# [16 17 18 19 20]# [21 0 23 24 0]# [26 27 28 29 30]# [31 0 33 34 0]]dots索引NumPy 允许使用…表示足够多的冒号来构建完整的索引列表。比如如果 x 是 5 维数组x[1,2,…] 等于 x[1,2,:,:,:]x[…,3] 等于 x[:,:,:,:,3]x[4,…,5,:] 等于 x[4,:,:,5,:]importnumpyasnp xnp.random.randint(1,100,[2,2,3])print(x)#[[[57 19 29]# [42 21 60]]## [[39 6 10]# [45 23 74]]]print(x[1,...])#[[39 6 10]# [45 23 74]]print(x[...,2])#[[29 60]# [10 74]]整数数组索引方括号内传入多个索引值可以同时选择多个元素。importnumpyasnp xnp.array([1,2,3,4,5,6,7,8])r[0,1,2]print(x[r])# [1 2 3]r[0,1,-1]print(x[r])# [1 2 8]xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])r[0,1,2]print(x[r])# [[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]]r[0,1,-1]print(x[r])# [[11 12 13 14 15]# [16 17 18 19 20]# [31 32 33 34 35]]r[0,1,2]c[2,3,4]yx[r,c]print(y)# [13 19 25]xnp.array([1,2,3,4,5,6,7,8])rnp.array([[0,1],[3,4]])print(x[r])# [[1 2]# [4 5]]xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])rnp.array([[0,1],[3,4]])print(x[r])# [[[11 12 13 14 15]# [16 17 18 19 20]]## [[26 27 28 29 30]# [31 32 33 34 35]]]# 获取了 5X5 数组中的四个角的元素。# 行索引是 [0,0] 和 [4,4]而列索引是 [0,4] 和 [0,4]。rnp.array([[0,0],[4,4]])cnp.array([[0,4],[0,4]])yx[r,c]print(y)# [[11 15]# [31 35]]可以借助切片:与整数数组组合。importnumpyasnp xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])yx[0:3,[1,2,2]]print(y)# [[12 13 13]# [17 18 18]# [22 23 23]]numpy. take(a, indices, axisNone, outNone, mode‘raise’) 沿某一轴从数组中提取元素。importnumpyasnp xnp.array([1,2,3,4,5,6,7,8])r[0,1,2]print(np.take(x,r))# [1 2 3]r[0,1,-1]print(np.take(x,r))# [1 2 8]xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])r[0,1,2]print(np.take(x,r,axis0))# [[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]]r[0,1,-1]print(np.take(x,r,axis0))# [[11 12 13 14 15]# [16 17 18 19 20]# [31 32 33 34 35]]r[0,1,2]c[2,3,4]ynp.take(x,[r,c])print(y)# [[11 12 13]# [13 14 15]]应注意使用切片索引到numpy数组时生成的数组视图将始终是原始数组的子数组, 但是整数数组索引不是其子数组是形成新的数组。 切片索引布尔索引我们可以通过一个布尔数组来索引目标数组。importnumpyasnp xnp.array([1,2,3,4,5,6,7,8])yx5print(y)# [False False False False False True True True]print(x[x5])# [6 7 8]xnp.array([np.nan,1,2,np.nan,3,4,5])ynp.logical_not(np.isnan(x))print(x[y])# [1. 2. 3. 4. 5.]xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])yx25print(y)# [[False False False False False]# [False False False False False]# [False False False False False]# [ True True True True True]# [ True True True True True]]print(x[x25])# [26 27 28 29 30 31 32 33 34 35]数组迭代除了for循环Numpy 还提供另外一种更为优雅的遍历方法。apply_along_axis(func1d, axis, arr) 沿给定轴对一维切片应用函数。importnumpyasnp xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])ynp.apply_along_axis(np.sum,0,x)print(y)# [105 110 115 120 125]ynp.apply_along_axis(np.sum,1,x)print(y)# [ 65 90 115 140 165]ynp.apply_along_axis(np.mean,0,x)print(y)# [21. 22. 23. 24. 25.]ynp.apply_along_axis(np.mean,1,x)print(y)# [13. 18. 23. 28. 33.]defmy_func(x):return(x[0]x[-1])*0.5ynp.apply_along_axis(my_func,0,x)print(y)# [21. 22. 23. 24. 25.]ynp.apply_along_axis(my_func,1,x)print(y)# [13. 18. 23. 28. 33.]数组操作更改形状在对数组进行操作时为了满足格式和计算的要求通常会改变其形状。1、numpy.ndarray.shape表示数组的维度返回一个元组这个元组的长度就是维度的数目即ndim 属性(秩)。importnumpyasnp xnp.array([1,2,9,4,5,6,7,8])print(x.shape)# (8,)x.shape[2,4]print(x)# [[1 2 9 4]# [5 6 7 8]]2、numpy.ndarray.flat 将数组转换为一维的迭代器可以用for访问数组每一个元素。importnumpyasnp xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])yx.flatprint(y)# numpy.flatiter object at 0x0000020F9BA10C60foriiny:print(i,end )# 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35y[3]0print(end\n)print(x)# [[11 12 13 0 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]3、numpy.ndarray.flatten([order‘C’]) 将数组的副本转换为一维数组并返回。- order‘C’ – 按行‘F’ – 按列‘A’ – 原顺序‘k’ – 元素在内存中的出现顺序。(简记)- order{C / FAK}可选使用此索引顺序读取a的元素。C’意味着以行大的C风格顺序对元素进行索引最后一个轴索引会更改F表示以列大的Fortran样式顺序索引元素其中第一个索引变化最快最后一个索引变化最快。请注意C’和’F’选项不考虑基础数组的内存布局仅引用轴索引的顺序.A’表示如果a为Fortran则以类似Fortran的索引顺序读取元素在内存中连续否则类似C的顺序。“ K”表示按照步序在内存中的顺序读取元素但步幅为负时反转数据除外。默认情况下使用Cindex顺序。flatten()函数返回的是拷贝importnumpyasnp xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])yx.flatten()print(y)# [11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34# 35]y[3]0print(x)# [[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])yx.flatten(orderF)print(y)# [11 16 21 26 31 12 17 22 27 32 13 18 23 28 33 14 19 24 29 34 15 20 25 30# 35]y[3]0print(x)# [[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]4、numpy.ravel(a, order‘C’) 返回一个连续的展平数组。ravel()返回的是视图。importnumpyasnp xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])ynp.ravel(x)print(y)# [11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34# 35]y[3]0print(x)# [[11 12 13 0 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]orderF 就是拷贝xnp.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])ynp.ravel(x,orderF)print(y)# [11 16 21 26 31 12 17 22 27 32 13 18 23 28 33 14 19 24 29 34 15 20 25 30# 35]y[3]0print(x)# [[11 12 13 14 15]# [16 17 18 19 20]# [21 22 23 24 25]# [26 27 28 29 30]# [31 32 33 34 35]]5、numpy.reshape(a, newshape[, order‘C’]) 在不更改数据的情况下为数组赋予新的形状。reshape() 函数当参数 newshape [rows,-1] 时将根据行数自动确定列数。importnumpyasnp xnp.arange(12)ynp.reshape(x,[3,4])print(y.dtype)# int32print(y)# [[ 0 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]ynp.reshape(x,[3,-1])print(y)# [[ 0 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]ynp.reshape(x,[-1,3])print(y)# [[ 0 1 2]# [ 3 4 5]# [ 6 7 8]# [ 9 10 11]]y[0,1]10print(x)# [ 0 10 2 3 4 5 6 7 8 9 10 11]改变x去reshape后y中的值x对应元素也改变reshape()函数当参数newshape -1时表示将数组降为一维。importnumpyasnp xnp.random.randint(12,size[2,2,3])print(x)# [[[11 9 1]# [ 1 10 3]]## [[ 0 6 1]# [ 4 11 3]]]ynp.reshape(x,-1)print(y)# [11 9 1 1 10 3 0 6 1 4 11 3]数组转置numpy.transpose(a, axesNone) 对数组的维度进行置换。numpy.ndarray.T 与 self.transpose() 相同但如果 self.ndim 2则返回 self。importnumpyasnp xnp.random.rand(5,5)*10xnp.around(x,2)print(x)# [[6.74 8.46 6.74 5.45 1.25]# [3.54 3.49 8.62 1.94 9.92]# [5.03 7.22 1.6 8.7 0.43]# [7.5 7.31 5.69 9.67 7.65]# [1.8 9.52 2.78 5.87 4.14]]yx.Tprint(y)# [[6.74 3.54 5.03 7.5 1.8 ]# [8.46 3.49 7.22 7.31 9.52]# [6.74 8.62 1.6 5.69 2.78]# [5.45 1.94 8.7 9.67 5.87]# [1.25 9.92 0.43 7.65 4.14]]ynp.transpose(x)print(y)# [[6.74 3.54 5.03 7.5 1.8 ]# [8.46 3.49 7.22 7.31 9.52]# [6.74 8.62 1.6 5.69 2.78]# [5.45 1.94 8.7 9.67 5.87]# [1.25 9.92 0.43 7.65 4.14]]更改维度当创建一个数组之后还可以给它增加一个维度这在矩阵计算中经常会用到。1、numpy.newaxis None None的别名对索引数组很有用很多工具包在进行计算时都会先判断输入数据的维度是否满足要求如果输入数据达不到指定的维度时可以使用newaxis参数来增加一个维度。importnumpyasnp xnp.array([1,2,9,4,5,6,7,8])print(x.shape)# (8,)print(x)# [1 2 9 4 5 6 7 8]yx[np.newaxis,:]print(y.shape)# (1, 8)print(y)# [[1 2 9 4 5 6 7 8]]yx[:,np.newaxis]print(y.shape)# (8, 1)print(y)# [[1]# [2]# [9]# [4]# [5]# [6]# [7]# [8]]2、numpy.squeeze(a, axisNone) 从数组的形状中删除单维度条目即把shape中为1的维度去掉。a表示输入的数组axis用于指定需要删除的维度但是指定的维度必须为单维度否则将会报错在机器学习和深度学习中通常算法的结果是可以表示向量的数组即包含两对或以上的方括号形式[[]]如果直接利用这个数组进行画图可能显示界面为空见后面的示例。我们可以利用squeeze()函数将表示向量的数组转换为秩为1的数组这样利用 matplotlib 库函数画图时就可以正常的显示结果了。importnumpyasnp xnp.arange(10)print(x.shape)# (10,)xx[np.newaxis,:]print(x.shape)# (1, 10)ynp.squeeze(x)print(y.shape)# (10,)importnumpyasnp xnp.array([[[0],[1],[2]]])print(x.shape)# (1, 3, 1)print(x)# [[[0]# [1]# [2]]]ynp.squeeze(x)print(y.shape)# (3,)print(y)# [0 1 2]ynp.squeeze(x,axis0)print(y.shape)# (3, 1)print(y)# [[0]# [1]# [2]]ynp.squeeze(x,axis2)print(y.shape)# (1, 3)print(y)# [[0 1 2]]ynp.squeeze(x,axis1)# ValueError: cannot select an axis to squeeze out which has size not equal to one数组组合如果要将两份数据组合到一起就需要拼接操作。numpy.concatenate((a1, a2, …), axis0, outNone) 沿现有轴将一系列数组连接起来。连接沿现有轴的数组序列原来xy都是一维的拼接后的结果也是一维的importnumpyasnp xnp.array([1,2,3])ynp.array([7,8,9])znp.concatenate([x,y])print(z)# [1 2 3 7 8 9]znp.concatenate([x,y],axis0)print(z)# [1 2 3 7 8 9]原来xy都是二维的拼接后的结果也是二维的。importnumpyasnp xnp.array([1,2,3]).reshape(1,3)ynp.array([7,8,9]).reshape(1,3)znp.concatenate([x,y])print(z)# [[ 1 2 3]# [ 7 8 9]]znp.concatenate([x,y],axis0)print(z)# [[ 1 2 3]# [ 7 8 9]]znp.concatenate([x,y],axis1)print(z)# [[ 1 2 3 7 8 9]]xy在原来的维度上进行拼接。importnumpyasnp xnp.array([[1,2,3],[4,5,6]])ynp.array([[7,8,9],[10,11,12]])znp.concatenate([x,y])print(z)# [[ 1 2 3]# [ 4 5 6]# [ 7 8 9]# [10 11 12]]znp.concatenate([x,y],axis0)print(z)# [[ 1 2 3]# [ 4 5 6]# [ 7 8 9]# [10 11 12]]znp.concatenate([x,y],axis1)print(z)# [[ 1 2 3 7 8 9]# [ 4 5 6 10 11 12]]numpy.stack(arrays, axis0, outNone) 沿新轴将一系列数组连接起来。沿着新的轴加入一系列数组stack为增加维度的拼接。importnumpyasnp xnp.array([1,2,3])ynp.array([7,8,9])znp.stack([x,y])print(z.shape)# (2, 3)print(z)# [[1 2 3]# [7 8 9]]znp.stack([x,y],axis1)print(z.shape)# (3, 2)print(z)# [[1 7]# [2 8]# [3 9]]numpy.vstack(tup) 将数组按顺序垂直堆叠即按行堆叠。numpy.hstack(tup) 将数组按顺序水平堆叠即按列堆叠。一维的情况。importnumpyasnp xnp.array([1,2,3])ynp.array([7,8,9])znp.vstack((x,y))print(z.shape)# (2, 3)print(z)# [[1 2 3]# [7 8 9]]znp.stack([x,y])print(z.shape)# (2, 3)print(z)# [[1 2 3]# [7 8 9]]znp.hstack((x,y))print(z.shape)# (6,)print(z)# [1 2 3 7 8 9]znp.concatenate((x,y))print(z.shape)# (6,)print(z)# [1 2 3 7 8 9]二维的情况。importnumpyasnp xnp.array([1,2,3]).reshape(1,3)ynp.array([7,8,9]).reshape(1,3)znp.vstack((x,y))print(z.shape)# (2, 3)print(z)# [[1 2 3]# [7 8 9]]znp.concatenate((x,y),axis0)print(z.shape)# (2, 3)print(z)# [[1 2 3]# [7 8 9]]znp.hstack((x,y))print(z.shape)# (1, 6)print(z)# [[ 1 2 3 7 8 9]]znp.concatenate((x,y),axis1)print(z.shape)# (1, 6)print(z)# [[1 2 3 7 8 9]]importnumpyasnp xnp.array([[1,2,3],[4,5,6]])ynp.array([[7,8,9],[10,11,12]])znp.vstack((x,y))print(z.shape)# (4, 3)print(z)# [[ 1 2 3]# [ 4 5 6]# [ 7 8 9]# [10 11 12]]znp.concatenate((x,y),axis0)print(z.shape)# (4, 3)print(z)# [[ 1 2 3]# [ 4 5 6]# [ 7 8 9]# [10 11 12]]znp.hstack((x,y))print(z.shape)# (2, 6)print(z)# [[ 1 2 3 7 8 9]# [ 4 5 6 10 11 12]]znp.concatenate((x,y),axis1)print(z.shape)# (2, 6)print(z)# [[ 1 2 3 7 8 9]# [ 4 5 6 10 11 12]]hstack(),vstack()分别表示水平和竖直的拼接方式。在数据维度等于1时比较特殊。而当维度大于或等于2时它们的作用相当于concatenate用于在已有轴上进行操作。importnumpyasnp anp.hstack([np.array([1,2,3,4]),5])print(a)# [1 2 3 4 5]anp.concatenate([np.array([1,2,3,4]),5])print(a)# all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 0 dimension(s)数组拆分numpy.split(ary, indices_or_sections, axis0) 将一个数组拆分为多个子数组作为对数组的视图。importnumpyasnp xnp.array([[11,12,13,14],[16,17,18,19],[21,22,23,24]])ynp.split(x,[1,3])print(y)# [array([[11, 12, 13, 14]]), array([[16, 17, 18, 19],# [21, 22, 23, 24]]), array([], shape(0, 4), dtypeint32)]ynp.split(x,[1,3],axis1)print(y)# [array([[11],# [16],# [21]]), array([[12, 13],# [17, 18],# [22, 23]]), array([[14],# [19],# [24]])]numpy.vsplit(ary, indices_or_sections) 将一个数组垂直按行拆分为多个子数组。importnumpyasnp xnp.array([[11,12,13,14],[16,17,18,19],[21,22,23,24]])ynp.vsplit(x,3)print(y)# [array([[11, 12, 13, 14]]), array([[16, 17, 18, 19]]), array([[21, 22, 23, 24]])]ynp.split(x,3)print(y)# [array([[11, 12, 13, 14]]), array([[16, 17, 18, 19]]), array([[21, 22, 23, 24]])]ynp.vsplit(x,[1])print(y)# [array([[11, 12, 13, 14]]), array([[16, 17, 18, 19],# [21, 22, 23, 24]])]ynp.split(x,[1])print(y)# [array([[11, 12, 13, 14]]), array([[16, 17, 18, 19],# [21, 22, 23, 24]])]ynp.vsplit(x,[1,3])print(y)# [array([[11, 12, 13, 14]]), array([[16, 17, 18, 19],# [21, 22, 23, 24]]), array([], shape(0, 4), dtypeint32)]ynp.split(x,[1,3],axis0)print(y)# [array([[11, 12, 13, 14]]), array([[16, 17, 18, 19],# [21, 22, 23, 24]]), array([], shape(0, 4), dtypeint32)]numpy.hsplit(ary, indices_or_sections) 将一个数组水平按列拆分为多个子数组。importnumpyasnp xnp.array([[11,12,13,14],[16,17,18,19],[21,22,23,24]])ynp.hsplit(x,2)print(y)# [array([[11, 12],# [16, 17],# [21, 22]]), array([[13, 14],# [18, 19],# [23, 24]])]ynp.split(x,2,axis1)print(y)# [array([[11, 12],# [16, 17],# [21, 22]]), array([[13, 14],# [18, 19],# [23, 24]])]ynp.hsplit(x,[3])print(y)# [array([[11, 12, 13],# [16, 17, 18],# [21, 22, 23]]), array([[14],# [19],# [24]])]ynp.split(x,[3],axis1)print(y)# [array([[11, 12, 13],# [16, 17, 18],# [21, 22, 23]]), array([[14],# [19],# [24]])]ynp.hsplit(x,[1,3])print(y)# [array([[11],# [16],# [21]]), array([[12, 13],# [17, 18],# [22, 23]]), array([[14],# [19],# [24]])]ynp.split(x,[1,3],axis1)print(y)# [array([[11],# [16],# [21]]), array([[12, 13],# [17, 18],# [22, 23]]), array([[14],# [19],# [24]])]数据平铺numpy.tile(A, reps) 根据reps给出的次数重复A来构造一个数组。tile是瓷砖的意思顾名思义这个函数就是把数组像瓷砖一样铺展开来。importnumpyasnp xnp.array([[1,2],[3,4]])print(x)# [[1 2]# [3 4]]ynp.tile(x,(1,3))print(y)# [[1 2 1 2 1 2]# [3 4 3 4 3 4]]ynp.tile(x,(3,1))print(y)# [[1 2]# [3 4]# [1 2]# [3 4]# [1 2]# [3 4]]ynp.tile(x,(3,3))print(y)# [[1 2 1 2 1 2]# [3 4 3 4 3 4]# [1 2 1 2 1 2]# [3 4 3 4 3 4]# [1 2 1 2 1 2]# [3 4 3 4 3 4]]numpy.repeat(a, repeats, axisNone) 数组中的重复元素axis0沿着y轴复制实际上增加了行数。axis1沿着x轴复制实际上增加了列数。repeats可以为一个数也可以为一个矩阵。axisNone时就会flatten当前矩阵实际上就是变成了一个行向量。importnumpyasnp xnp.repeat(3,4)print(x)# [3 3 3 3]xnp.array([[1,2],[3,4]])ynp.repeat(x,2)print(y)# [1 1 2 2 3 3 4 4]ynp.repeat(x,2,axis0)print(y)# [[1 2]# [1 2]# [3 4]# [3 4]]ynp.repeat(x,2,axis1)print(y)# [[1 1 2 2]# [3 3 4 4]]ynp.repeat(x,[2,3],axis0)print(y)# [[1 2]# [1 2]# [3 4]# [3 4]# [3 4]]ynp.repeat(x,[2,3],axis1)print(y)# [[1 1 2 2 2]# [3 3 4 4 4]]添加和删除元素numpy.unique(ar, return_indexFalse, return_inverseFalse,return_countsFalse, axisNone) 找出数组中的唯一元素。return_index输入数组中给出唯一值的索引return_inverse重构输入数组的唯一数组的索引return_counts输入数组中每个唯一值出现的次数anp.array([1,1,2,3,3,4,4])bnp.unique(a,return_countsTrue)print(b[0][list(b[1]).index(1)])#2
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

广州代做网站企业营销网站开发建设专家

一、wispaper 入口在这👉https://www.wispaper.ai/ 追踪自己研究方向的前沿,其实是搞科研关键的技能之一 问题是,每天手动去检索新论文太麻烦!看《Nature》《Science》这种综合期刊又太杂,想找对口内容很难&#xf…

张小明 2026/1/6 20:06:22 网站建设

怎么创建网站要钱吗租服务器价格一览表

FaceFusion模型灰度发布机制保障线上稳定性在AI驱动的社交娱乐产品中,用户对图像生成质量的要求越来越高。以人脸融合(FaceFusion)为例,这项技术不仅要精准对齐面部特征、自然融合表情纹理,还要在毫秒级响应内完成推理…

张小明 2026/1/6 10:40:37 网站建设

广州网站app制作公司马云为什么做网站

一、市场现状:刚需爆发下的机遇与痛点​2025 年陪诊市场规模预计突破 230 亿元,小程序渠道占比超 55%,成为核心服务载体。核心用户呈现三大圈层:60% 为独居老人及异地就医群体,25% 是职场白领(代父母下单&a…

张小明 2026/1/6 20:54:43 网站建设

长沙网站设计我选刻新乡网络公司推荐

系统安全防护全攻略:从登录到网络的深度剖析 在当今数字化时代,系统安全至关重要。无论是避免以 root 身份登录,还是保障网络服务的安全,每一个环节都不容忽视。下面将详细介绍系统安全的各个方面,帮助你构建一个坚固的安全防线。 1. 避免以 Root 身份登录 Root 用户在…

张小明 2026/1/6 14:51:46 网站建设

怎么做律师事务所的网站凤城市网站建设

还在为复杂的智能监控系统配置而头疼吗?作为一款支持实时本地物体检测的网络视频录像机,Frigate通过高效的视频流处理和智能分析功能,为用户提供了专业级的监控解决方案。本文将通过4个简单步骤,带你快速掌握Frigate的核心配置技巧…

张小明 2026/1/6 17:02:40 网站建设