numpy 您所在的位置:网站首页 一维数据可以使用什么分隔 numpy

numpy

2023-07-25 14:35| 来源: 网络整理| 查看: 265

hsplit():沿横轴(纵向)拆分原array。可以实现均匀切割或者指定位置切割。(水平切割) vsplit():沿垂直轴切割原array。同上。(垂直切割) split():通过参数axis=1或者axis=0(默认axis=0)可以实现水平切割或者垂直切割。split必须要均等分. array_split():通过参数axis=1或者axis=0可以实现水平切割或者垂直切割。array_split()强制切割,指定切割后的数目实现近似均匀切割。

注意:np.array_split 和np.split(),这两个函数的唯一区别是 split() 必须是等分,否则会抛出异常:ValueError: array split does not result in an equal division。

以下面的两行三列的二维数组和两行两列的二维数组为例

import numpy as np #生成要拆分的两个数组 array1=np.arange(6).reshape(2,3) array2=np.arange(4).reshape(2,2) print('array1:') print(array1) print("array2:") print(array2)

在这里插入图片描述

(1)hsplit()用法(vsplit()类似) #np.hsplit(ary, indices_or_sections) 将数组水平拆分为多个子数组(按列)——>按列拆分。 #np.hsplit(ary, indices_or_sections) 将数组水平拆分为多个子数组(按列)——>按列拆分。 #Split an array into multiple sub-arrays horizontally (column-wise). #指定分割后数组的个数,实现均匀分割 #输出结果为列表,列表中元素为数组。 #print(np.hsplit(array1,2)) #会报错,因为没办法均匀分割 ar = np.hsplit(array2,2) #不会报错,成功分割为两个数组 print('ar:') print(ar) print('array2:') print(array2) #array2不变 print('np.hsplit(array2,2)[0]') print(np.hsplit(array2,2)[0])

在这里插入图片描述

ar1 = np.hsplit(array1,(1,3))#传入的是元组 ar2 = np.hsplit(array1,(0,2))#注意观察三个的输出结果 ar3 = np.hsplit(array1,(1,0)) print('ar1:') print(ar1) print("ar2:") print(ar2) print('ar3:') print(ar3)

在这里插入图片描述

(2)split() #np.split(ary, indices_or_sections, axis=0) #Split an array into multiple sub-arrays。 #生成列表,列表中元素是数组 ar = np.split(array1,3,axis=1) print(ar) #若写成np.split(array1,2,axis=1)则会报错,因为沿按列无法均匀分割成两份

在这里插入图片描述

split用法补充(一维数组split以及机器学习中的用法)

以一行六列的二维数组和一个包含六个元素的一维数组为例

array3=np.arange(6).reshape(1,6)#一行六列的二维数组 print(np.split(array3,2,axis=1)) #print(np.split(array3,2))会报错,因为默认axis=0

在这里插入图片描述

array4=np.arange(6) #一维数组 print(type(array4)) print(np.split(array4,2,axis=0)) #print(np.split(array4,2,axis=1))会报错

在这里插入图片描述 机器学习中常用方法:

m = np.arange(6.0) n = np.split(m, (3,)) #3代表位置 print(n)

在这里插入图片描述

m = np.arange(6.0) n = np.split(m, 3)#3代表分几份 print(n)

在这里插入图片描述

机器学习中的用法解释: x, y = np.split(data, (3,), axis=1) #axis=1,代表列,是要把data数据集中的所有数据按第三、四列之间分割为X集和Y集。(data一般为二维数组)

(3)array_split()

对于一个长度为 L 的数组,该函数是这么拆的:前 L % n 个组的大小是 L // n + 1,剩下组的大小是 L // n。 其中 // 表示下取整(即 np.floor()),n代表划分后数组的个数

#np.array_split(ary, indices_or_sections, axis=0) #Split an array into multiple sub-arrays. #生成要组合的两个数组 array1=np.arange(14).reshape(2,7) ar = np.array_split(array1,2,axis=1)#按列分割成两份。此处若用np.split则会报错。 print(ar)

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有