这些都是不同类型的排序技术,表现非常不同。让我们研究一下哪种技术有效,以及使用哪种技术。
null
让a成为a 努比 大堆
- a、 排序() (i) 对数组进行适当排序并返回None (二)退货类型为无 (iii)占用较少的空间。没有创建副本,因为它直接对原始数组排序 (iv)快于(a)
# Python code to sort an array in-place
# using a.sort
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
7
,
4
,
3
,
6
])
# unsorted array print
print
(
'Original array:'
, a)
# Return type is None
print
(
'Return type:'
, a.sort())
# Sorted array output
print
(
'Original array sorted->'
, a)
OUTPUT: For a.sort() Original array: [9 3 1 7 4 3 6] Return type: None Original array sorted-> [1 3 3 4 6 7 9]
- (a) (i) 从旧列表中创建一个新列表并返回新列表,排序 (ii)返回类型是一个列表 (iii)创建原始数组的副本并进行排序时,会占用更多空间 (iv)比a.排序慢
# Python code to create a sorted copy using
# sorted()
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
7
,
4
,
3
,
6
])
# unsorted array print
print
(
'Original array:'
, a)
b
=
sorted
(a)
# sorted list returned to b, b type is
# <class 'list'>
print
(
'New array sorted->'
, b)
# original array no change
print
(
'Original array->'
, a)
OUTPUT:a.sorted() Original array: [9 3 1 7 4 3 6] New array sorted-> [1, 3, 3, 4, 6, 7, 9] Original array-> [9 3 1 7 4 3 6]
- NP阿格索特(a) (i) 返回将对数组进行排序的索引 (二)返回类型为numpy数组 (iii)在返回新的排序索引数组时占用空间
# Python code to demonstrate working of np.argsort
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
7
,
4
,
3
,
6
])
# unsorted array print
print
(
'Original array:'
, a)
# Sort array indices
b
=
np.argsort(a)
print
(
'Sorted indices of original array->'
, b)
# To get sorted array using sorted indices
# c is temp array created of same len as of b
c
=
np.zeros(
len
(b), dtype
=
int
)
for
i
in
range
(
0
,
len
(b)):
c[i]
=
a[b[i]]
print
(
'Sorted array->'
, c)
OUTPUT:np.argsort(a) Original array: [9 3 1 7 4 3 6] Sorted indices of original array-> [2 1 5 4 6 3 0] Sorted array-> [1 3 3 4 6 7 9]
- NP词汇分类((b,a)) (i) 使用一系列键执行间接排序 (ii)按a排序,然后按b排序 (iii)沿指定轴对键进行排序的ints索引数组的返回类型ndarray (iv)在返回按对排序的索引的新数组时占用空间。
# Python code to demonstrate working of
# np.lexsort()
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
3
,
4
,
3
,
6
])
# First column
b
=
np.array([
4
,
6
,
9
,
2
,
1
,
8
,
7
])
# Second column
print
(
'column a, column b'
)
for
(i, j)
in
zip
(a, b):
print
(i,
' '
, j)
ind
=
np.lexsort((b, a))
# Sort by a then by b
print
(
'Sorted indices->'
, ind)
OUTPUT:np.lexsort((b, a)) column a, column b 9 4 3 6 1 9 3 2 4 1 3 8 6 7 Sorted indices-> [2 3 1 5 4 6 0]
本文由 肖亚·乌帕尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END