我试图通过包含超过1000个数字的第4列对文本文件进行排序.我可以隔离数字列,但我无法按升序排序.这是我认为是正确的.但我不断收到以下错误:
'str'对象没有属性'sort'
任何建议都会很棒!
file = open("MyFile.txt")
column = []
for line in file:
column = line[1:].split("\t")[3]
print (column.sort())
Run Code Online (Sandbox Code Playgroud) 我有以下数据结构:
[[[ 512 520 1 130523]]
[[ 520 614 573 7448]]
[[ 614 616 615 210]]
[[ 616 622 619 269]]
[[ 622 624 623 162]]
[[ 625 770 706 8822]]
[[ 770 776 773 241]]]
Run Code Online (Sandbox Code Playgroud)
我试图返回一个相同形状的对象,但只返回具有 3 个最大的第 4 列的行(如果有意义的话)(所以在这种情况下,这将是第 1、2 和 6 行)
最优雅的方法是什么?
import numpy as np
a = np.array([[5,9,44],
[5,12,43],
[5,33,11]])
b = np.sort(a,axis=0)
print(b) #not well
# [[ 5 9 11]
# [ 5 12 43]
# [ 5 33 44]]
#desired output:
#[[5,33,11],
# [5,12,43],
# [5,9,44]]
Run Code Online (Sandbox Code Playgroud)
什么numpy排序会完全改变行(当然基于从低到高),但我想保持行不变。我想基于最后一列的值对行进行排序,但是行和数组中的值必须保持不变。有什么pythonic方法可以做到这一点吗?谢谢
我有这个np数组:
array([[0, 0, 0, 0, 4, 4],
[2, 3, 5, 6, 5, 6]])
Run Code Online (Sandbox Code Playgroud)
我想在第二行对它进行排序,这样第一行就会相应调整.所以输出应该是这样的:
array([[0, 0, 0, 4, 0, 4],
[2, 3, 5, 5, 6, 6]])
Run Code Online (Sandbox Code Playgroud)
有快速的方法吗?