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" "王五"]]
至此完成。
关键词: