当前位置: 首页 >> 资讯 > > 正文

关于python中numpy 的array二维数组

2023-06-27 10:22:54来源:博客园

1、如何删除某一行、某一列


【资料图】

简单的例子:

Original=np.array([[1,2,7,4],                   [7,5,1,4],                   [7,8,11,9],                   [11,3,17,2]])如下都将使用该二维数组进行示例删除某一行就是np.delete(Original,1,axis=0)想要删除某一列最简单的就是加上个转置然后删除,最后再转回来np.delete(Original.T,1,axis=0)多行删除就是把 1 的位置变成一个数组np.delete(Original,[0,2],axis=0)当然别忘记在前面接收一下2、numpy中的array二维数组怎么由一行的数据进行排序(1)普通的对整数类型的二维数组进行排列第一步先创建一个排序序列:sorted_index=np.lexsort(sort)在此之前要设置一下sort:这里想要按照第三列排序就是3,并且不存在第零列,1、2、3这样子找自己需要的列就好sort= Original[:,:3].T
sorted_index=np.lexsort(sort)之后这里的sorted_index会提供一个分类的结果序列例如:[1 0 2 3]之后我们把排序后的序列放到array二维数组中并替换:Original=Original[sorted_index]就会得到结果排序后输出数组

[[ 7 5 1 4] [ 1 2 7 4] [ 7 8 11 9] [11 3 17 2]]

(2)对str类型的array二维数组针对某一列进行排序

这里就需要前面的知识点,不过在此之前需要进行数据处理。

在第一部中我们通过original的其中一列进行分类,

而sorted_index则是那个分类的结果序列!这个序列在这一部分相对重要,如下:

第一步:因为我们是按照某一列进行排序,

而同一个二维数组中会有一些str类型,

我又不会让array二维数组的其中一列变成int类型,怎么办呢。

通过np.delete将不需要分组的数据删除,数据如下

Original=np.array([[2,"张三"],                   [1,"李四"],                   [3,"王五"]])
temp = np.delete(Original.T,1,axis=0).Tprint(temp)接下来我用一个 temp 临时数组进行替代。进行如上的操作之后,纯净的需要我们排序的数组就出来了结果为:

[["2"] ["1"] ["3"]]

之后将其强制转为int类型(之所以这么麻烦就是因为我只会把整个数组强转,单列不会,会的话就不用这样麻烦了)
temp = temp.astype(int)print(temp)结果为:
之后我们就可以排序了:在这里我们期望的是得到sorted_index排序数列,用需要排列的并且未经改变的数字排列位置进行排序(也就是说数组的顺序没有经过改变)之后像第一不一样得到sort和sorted_index

然后把sorted_index放到Original中:

print("排序结果为="+str(Original[sorted_index]))得到排序结果:

排序结果为=[["1" "李四"] ["2" "张三"] ["3" "王五"]]

至此完成。

标签: