Python 프로 그래 밍 깊이 학습 컴 퓨 팅 라 이브 러 리 numpy
6357 단어 pythonnumpy계산 라 이브 러 리
NumPy vs SciPy
NumPy 와 Scipy 는 모두 연산 할 수 있 는데,주요 차이 점 은 다음 과 같다.
최근 에 비교적 인기 있 는 심도 있 는 학습,예 를 들 어 신경 망 의 알고리즘,다 차원 배열 의 사용 은 매우 중요 한 장면 이다.tensor flow 의 tensor 개념 에 익숙 하 다 면 numpy 의 역할 이 매우 뚜렷 할 것 입 니 다.그래서 Numpy 를 잘 아 는 것 은 python 을 사용 하여 깊이 있 는 학습 입문 을 하 는 기초 지식 이 라 고 할 수 있 습 니 다.
설치 하 다.
liumiaocn:tmp liumiao$ pip install numpy
Collecting numpy
Downloading https://files.pythonhosted.org/packages/b6/5e/4b2c794fb57a42e285d6e0fae0e9163773c5a6a6a7e1794967fc5d2168f2/numpy-1.14.5-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.7MB)
100% || 4.7MB 284kB/s
Installing collected packages: numpy
Successfully installed numpy-1.14.5
liumiaocn:tmp liumiao$
확인 하 다.
liumiaocn:tmp liumiao$ pip show numpy
Name: numpy
Version: 1.14.5
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email: None
License: BSD
Location: /usr/local/lib/python2.7/site-packages
Requires:
Required-by:
liumiaocn:tmp liumiao$
쓰다numpy 배열 사용 하기
다음 예 를 들 어 numpy 의 배열 사용 을 간단하게 이해 합 니 다.
liumiaocn:tmp liumiao$ cat np-1.py
#!/usr/local/bin/python
import numpy as np
arr = [1,2,3,4]
print("array arr: ", arr)
np_arr = np.array(arr)
print("numpy array: ", np_arr)
print("doulbe calc : ", 2 * np_arr)
print("ndim: ", np_arr.ndim)
liumiaocn:tmp liumiao$ python np-1.py
('array arr: ', [1, 2, 3, 4])
('numpy array: ', array([1, 2, 3, 4]))
('doulbe calc : ', array([2, 4, 6, 8]))
('ndim: ', 1)
liumiaocn:tmp liumiao$
다 차원 배열&ndim/shapendim 은 numpy 에서 배열 의 차원 을 말 합 니 다.2 차원 값 이 라면 2 입 니 다.아래 의 예 에서 2 의 등차 수열 을 구성 한 다음 에 이 를 차원 으로 전환 시 키 는 동시에 배열 의 ndim 과 shape 의 값 을 출력 하여 ndim 과 shape 의 의미 에 대한 이 해 를 보조 합 니 다.
liumiaocn:tmp liumiao$ cat np-2.py
#!/usr/local/bin/python
import numpy as np
arithmetic = np.arange(0,16,2)
print(arithmetic)
print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)
#resize to 2*4 2-dim array
arithmetic.resize(2,4)
print(arithmetic)
print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)
#resize to 2*2*2 3-dim array
array = arithmetic.resize(2,2,2)
print(arithmetic)
print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)
liumiaocn:tmp liumiao$ python np-2.py
[ 0 2 4 6 8 10 12 14]
('ndim: ', 1, ' shape:', (8,))
[[ 0 2 4 6]
[ 8 10 12 14]]
('ndim: ', 2, ' shape:', (2, 4))
[[[ 0 2]
[ 4 6]]
[[ 8 10]
[12 14]]]
('ndim: ', 3, ' shape:', (2, 2, 2))
liumiaocn:tmp liumiao$
또한 reshape 를 사용 하여 차원 을 조정 할 수 있다.등차 수열&등비 수열
numpy 와 matlab 는 기본적으로 많은 함수 가 있 습 니 다.예 를 들 어 등비 수열 과 등차 수열 은 linspace 와 logspace 를 사용 하여 진행 할 수 있 습 니 다.
logspace 가 부족 할 때 는 10 으로 바닥 을 주지 만 지정 한 base 를 통 해 설정 할 수 있 습 니 다.
liumiaocn:tmp liumiao$ cat np-3.py
#!/usr/local/bin/python
import numpy as np
print("np.linspace(1,4,4):", np.linspace(1,4,4))
print("np.logspace(1,4,4):", np.logspace(1,4,4))
print("np.logspace(1,4,4,base=2):",np.logspace(1,4,4,base=2))
liumiaocn:tmp liumiao$ python np-3.py
('np.linspace(1,4,4):', array([1., 2., 3., 4.]))
('np.logspace(1,4,4):', array([ 10., 100., 1000., 10000.]))
('np.logspace(1,4,4,base=2):', array([ 2., 4., 8., 16.]))
liumiaocn:tmp liumiao$
배열 초기 화numpy 는 초기 화 에 편리 한 함 수 를 제공 합 니 다.예 를 들 어
liumiaocn:tmp liumiao$ cat np-4.py
#!/usr/local/bin/python
import numpy as np
print("np.zeros(6):",np.zeros(6))
print("np.zeros((2,3)):",np.zeros((2,3)))
print("np.ones(6):",np.ones(6))
print("np.ones((2,3)):",np.ones((2,3)))
print("np.random.random(6):",np.random.random(6))
print("np.random.random(6):",np.random.random(6))
print("np.random.random((2,3)):",np.random.random((2,3)))
print("np.random.seed(1234)")
np.random.seed(1234)
print("np.random.random(6):",np.random.random(6))
print("np.random.seed(1234)")
np.random.seed(1234)
print("np.random.random(6):",np.random.random(6))
liumiaocn:tmp liumiao$ python np-4.py
('np.zeros(6):', array([0., 0., 0., 0., 0., 0.]))
('np.zeros((2,3)):', array([[0., 0., 0.],
[0., 0., 0.]]))
('np.ones(6):', array([1., 1., 1., 1., 1., 1.]))
('np.ones((2,3)):', array([[1., 1., 1.],
[1., 1., 1.]]))
('np.random.random(6):', array([0.06909968, 0.27468844, 0.59127996, 0.56973602, 0.45985047,
0.95384945]))
('np.random.random(6):', array([0.62996648, 0.2824114 , 0.2698051 , 0.09262053, 0.50862503,
0.96600255]))
('np.random.random((2,3)):', array([[0.66880129, 0.8834006 , 0.49458989],
[0.28335563, 0.65711274, 0.76726504]]))
np.random.seed(1234)
('np.random.random(6):', array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581,
0.27259261]))
np.random.seed(1234)
('np.random.random(6):', array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581,
0.27259261]))
liumiaocn:tmp liumiao$
총결산이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.