>백엔드 개발 >파이썬 튜토리얼 >numpy array_python의 여러 정렬 방법에 대한 간략한 토론

numpy array_python의 여러 정렬 방법에 대한 간략한 토론

韦小宝
韦小宝원래의
2017-12-16 13:32:493309검색

이 글에서는 주로 numpy 배열의 여러 정렬 방법을 소개합니다. numpy에 대한 간략한 소개와 배열 생성 방법이 포함되어 있어 numpy에 관심이 있는 친구들이 참고할 수 있습니다.

간단한 소개

NumPy 시스템은 Python용 오픈 소스 배열 계산 확장 프로그램입니다. 이 도구는 Python의 자체 중첩 목록 구조(행렬을 나타내는 데에도 사용할 수 있음)보다 훨씬 더 효율적으로 대규모 행렬을 저장하고 처리하는 데 사용할 수 있습니다.

배열 만들기

1차원 배열 만들기:

data = np.array([1,3,4,8])  
data = np.array([1,3,4,8])  

查看数组维度

data.shape

查看数组类型

data.dtype

通过索引获取或修改数组元素

data[1] 获取元素<br>data[1] = 'a' 修改元素  

创建二维数组

data = np.array([[1,2,3],[4,5,6]]) 两个元素均为列表0c6dc11e160d3b678d68754cc175188a2.data = np.arange(10) 与python的range一样,range返回列表,arange返回array类型的一个数组0c6dc11e160d3b678d68754cc175188a3.data2 = data.reshape(2,5) 返回一个2*5的数组,他不是拷贝数组是引用,只是返回数组的不同视图,data改变data2也会改变

创建特殊数组 

data = np.zeros((2,2)) 创建2*2全为0的2维数组<br>data = np.ones((2,3,3,)) 创建全为1的三维数组<br>data = np.eye(4) 创建4*4的对角数组,对角元素为1,其它都为0<br>

数组转换

data = np.arange(16).reshape(4,4) 将0-16的移位数组转换为4*4的数组  

排序方式

说明:经常需要对数组或者list进行排序,python提供了好几种排序的函数,下面说明下特点;

二维数组a:

1 4
3 1

1、ndarray.sort(axis=-1,kind='quicksort',order=None)

使用方法:a.sort

参数说明:

axis:排序沿着数组的方向,0表示按行,1表示按列

kind:排序的算法,提供了快排、混排、堆排

order:不是指的顺序,以后用的时候再去分析这个

作用效果:对数组a排序,排序后直接改变了a

例如:

>>a.sort(axis=1)
>>print a

1 4
1 3

2、numpy.sort(a,axis=-1,kind='quicksort',order=None)

使用方法:numpy.sort(a)

参数说明:

a:要排序的数组,其他同1

作用效果:对数组a排序,返回一个排序后的数组(与a相同维度),a不变

例如:

>>print numpy.sort(a,axis=1)
1 4
1 3
>>print a
1 4
3 1

3、numpy.argsort(a,axis=-1,kind='quicksort',order=None)

使用方法:numpy.argsort(a)

参数说明:同2

作用效果:对数组a排序,返回一个排序后索引,a不变

例如:

>>print numpy.argsort(a,axis=1)
0 1
1 0

4、sorted(iterable,cmp=None,key=None,reverse=False)

배열 보기 Dimensions

data.shape

배열 유형 보기

data.dtype

색인별로 배열 요소 가져오기 또는 수정

data[ 1] 요소 가져오기
data[1] = 'a' 요소 수정 

2차원 배열 만들기

data = np.array ([[1,2 ,3],[4,5,6]]) 두 요소 모두 목록입니다.0c6dc11e160d3b678d68754cc175188a2.data = np.arange(10) Python의 범위와 마찬가지로 range도 목록과 범위를 반환합니다. 배열을 반환합니다. 3.data2 = data.reshape(2,5) 유형의 배열은 2*5 배열을 반환합니다. 이는 배열을 복사하지 않고 참조만 반환합니다. 데이터가 변경되면 data2도 변경됩니다

특수 배열 만들기

data = np.zeros((2,2)) 모두 0인 2*2 2차원 배열 만들기<br>data = np.ones((2, 3,3,)) 모두 1인 3차원 배열을 만듭니다.<br>data = np.eye(4) 대각선 요소가 다음과 같은 4*4 대각선 배열을 만듭니다. 1이고 나머지는 0입니다<br> code><p></p> <p>Array Conversion</p> <p><span style="font-size: large"><code>data = np.arange(16).reshape(4,4) 0-16 시프트 배열을 4*로 변환합니다. 4 배열 

정렬 방법

설명: 배열이나 목록을 정렬해야 하는 경우가 많습니다. Python은 여러 정렬 기능을 제공합니다. 2차원 배열 a:

>>c=sorted(b.iteritems(),key=operator.itemgetter(1),reverse=False)
>>print c[(&#39;c&#39;, 1), (&#39;a&#39;, 2), (&#39;b&#39;, 3)]
1, ndarray.sort(axis=-1,kind='quicksort',order=None)

사용법: a.sort

매개변수 설명:

axis: sort 배열 방향을 따라 0은 행 단위, 1은 열 단위

kind: 정렬 알고리즘, 빠른 정렬, 혼합 정렬, 힙 정렬 제공

order: 순서를 참조하지 않으며 사용할 때 이를 분석합니다. 나중에🎜🎜효과: 정렬 후 a🎜🎜가 직접 변경됩니다. 예: 🎜🎜🎜rrreee🎜🎜🎜🎜rrreee🎜🎜🎜2. ,kind='quicksort',order=None )🎜🎜사용법: numpy.sort(a)🎜🎜매개변수 설명: 🎜🎜a: 정렬할 배열, 나머지는 1🎜🎜와 동일효과: 배열 a 정렬, 정렬된 배열 반환(a와 동일한 차원), 변경되지 않음🎜🎜예: 🎜🎜🎜rrreee🎜🎜🎜3, numpy.argsort(a, axis=-1, kind ='quicksort', order=None) 🎜🎜사용법: numpy.argsort(a)🎜🎜매개변수 설명: 2🎜🎜효과: 배열 a 정렬, 정렬된 인덱스 반환, a는 변경되지 않은 상태로 유지🎜🎜예: 🎜🎜 🎜rrreee🎜🎜🎜4, sorted(iterable,cmp=None,key=None,reverse=False)🎜🎜설명: 내장된 정렬 기능을 목록, 사전 등에 사용할 수 있습니다. 🎜🎜iterable: 반복 가능한 유형입니다. 🎜 🎜cmp: 비교에 사용되는 함수, 비교 대상이 키에 의해 결정되고 기본값이 있으며 컬렉션의 항목을 반복합니다. 🎜🎜key: 특정 속성과 함수를 사용합니다. 목록 요소를 키워드로 사용하고 기본값을 가지며 컬렉션을 반복합니다. 항목 중 하나;🎜🎜reverse: 정렬 rule.reverse=True 또는 reverse=False, 기본값은 False(작은 것부터 큰 것까지). 🎜🎜반환 값: iterable과 동일한 정렬된 반복 가능 유형입니다.🎜🎜예: b는 사전입니다🎜🎜b:🎜🎜{'a':2,'c':1,'b':3 }🎜🎜 정렬 b: 🎜🎜🎜rrreee🎜🎜🎜볼 수 있음: 반환된 것은 목록입니다🎜🎜🎜🎜Summary🎜🎜🎜🎜위는 numpy 배열의 여러 정렬 방법에 대한 이 기사의 전체 내용입니다. 모두에게 도움이 되길 바랍니다. 관심 있는 친구들은 이 사이트의 다른 관련 주제를 계속해서 참조할 수 있습니다. 부족한 점이 있으면 지적할 메시지를 남겨주세요. 이 사이트를 지원해 준 친구들에게 감사드립니다! 🎜🎜🎜🎜관련 권장 사항: 🎜🎜🎜🎜🎜🎜Python 과학 컴퓨팅 - Numpy로 빠른 시작🎜🎜🎜🎜🎜numpy 배열이 왜 그렇게 빠른가요? 🎜🎜🎜🎜Python NumPy 라이브러리 설치 및 사용 참고사항🎜🎜

위 내용은 numpy array_python의 여러 정렬 방법에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.