Khiêu chuyển đáo nội dung

NumPy

本页使用了标题或全文手工转换
Duy cơ bách khoa, tự do đích bách khoa toàn thư
NumPy
Nguyên tác giảĐặc lạp duy tư · áo lợi phân đặc(Anh ngữ:Travis Oliphant)
Khai phát giảXã quần chuyên án
Thủ thứ phát bốNumeric, 1995 niên(1995);
NumPy, 2006 niên(2006)
Đương tiền bản bổn
  • 2.0.0(2024 niên 6 nguyệt 16 nhật; ổn định bản bổn )[1]
編輯維基數據鏈接
Nguyên đại mã khố編輯維基數據鏈接
Biên trình ngữ ngônPython,C ngữ ngôn
Thao tác hệ thốngKhóa bình đài
Loại hìnhSổ trị phân tích
Hứa khả hiệp nghịBSD thụ quyền điều khoản
Võng trạmwww.numpy.org

NumPyThịPython ngữ ngônĐích nhất cá khoách sung trình thức khố. Chi viện cao giai đại quy mô đíchĐa duyTrận liệtDữCủ trậnVận toán, thử ngoại dã châm đối trận liệt vận toán đề cung đại lượng đíchSổ họcHàm sổHàm thức khố.NumPy đích tiền thânNumericTối tảo thị do Jim Hugunin dữ kỳ tha hiệp tác giả cộng đồng khai phát, 2005 niên, Travis Oliphant tại Numeric trung kết hợp liễu lánh nhất cá đồng tính chất đích trình thức khố Numarray đích đặc sắc, tịnh gia nhập liễu kỳ tha khoách sung công năng nhi khai phát liễu NumPy. NumPy vi khai phóng nguyên thủy mã tịnh thả do hứa đa hiệp tác giả cộng đồng duy hộ khai phát.

Lịch sử

[Biên tập]

Matrix-sig

[Biên tập]

Tẫn quản ngận tảo tựu thụ đáo liễu khoa học giới hòa công nghiệp giới đích quan chú, đãn Python tối sơ tịnh bất thị vi sổ trị kế toán thiết kế đích. 1995 niên, đặc thù hưng thú tiểu tổ ( Special Interest Group, SIG ) Matrix-sig thành lập, kỳ mục đích thị thiết kế nhất cá sổ tổ kế toán bao. Matrix-sig đích thành viên trung hữu Python đích thiết kế giả hòa duy hộ giảCát đa · phạm la tô mỗ,Tha khoách triển liễu Python đích ngữ pháp ( đặc biệt thị tác dẫn ngữ pháp[2]), sử sổ tổ kế toán canh dung dịch.[3]

Numeric

[Biên tập]

Củ trận bao Numeric do Jim Fulton thật hiện, tịnh do Jim Hugunin thôi quảng[3],( dã xưng Numerical Python extensions hoặc NumPy).[4][5]Jim Hugunin thịMa tỉnh lý công học việnĐích nghiên cứu sinh,[5]:10Vu 1997 niên gia nhậpQuốc gia nghiên cứu kế hoa công tư(Anh ngữ:Corporation_for_National_Research_Initiatives)Tòng sựJPythonĐích nghiên phát[3],Lao luân tư lợi phất mạc nhĩ quốc gia thật nghiệm thấtĐích Paul Dubois tiếp nhậm duy hộ giả.[5]:10Kỳ tha tảo kỳ cống hiến giả bao quát David Ascher, Konrad Hinsen hòa Travis Oliphant.[5]:10

Numarray

[Biên tập]

Numarray thị tác vi Numeric đích thế đại phẩm bị khai phát xuất lai đích[6],Hiện dĩ phế khí.[7][8]Tương bỉ vu Numeric, Numarray xử lý đại sổ tổ tốc độ giác khoái, nhiên nhi xử lý tiểu sổ tổ tốc độ giác mạn,[9]Nhân thử hữu nhất đoạn thời gian giá lưỡng cá bao bị tịnh hành sử dụng vu bất đồng tình huống. Numeric đích tối hậu nhất cá bản bổn ( v24.2 ) vu 2005 niên 11 nguyệt 11 nhật phát bố; Numarray đích tối hậu nhất cá bản bổn ( v1.5.2 ) vu 2006 niên 8 nguyệt 24 nhật phát bố.[10]

Hữu nhân hi vọng tương Numeric nạp nhập Python tiêu chuẩn khố, đãn cát đa · phạm la tô mỗ nhận vi, tại đương thời đích tình huống hạ, đại mã nan dĩ duy hộ.[11]

2005 niên sơ, NumPy đích khai phát giả Travis Oliphant hi vọng xã khu đích bất đồng sổ tổ bao khả dĩ thống nhất. Tha tương Numarray đích công năng di thực đáo Numeric thượng, tịnh vu 2006 tương kết quả tác vi NumPy 1.0 phát bố.[6]Giá cá tân hạng mục thịSciPyĐích nhất bộ phân. Vi liễu tị miễn tại chỉ nhu sổ tổ kế toán đích tình huống hạ an trang bàng đại đích SciPy bao, tân bao dĩ NumPy đích danh nghĩa bị phân ly xuất lai. 2011 niên, NumPy đích 1.5.0 bản bổn gia nhập liễu đối Python 3 đích chi trì.[12]

2011 niên, PyPy khai thủy khai phát NumPy API,[13]Đãn tha thượng vị dữ NumPy hoàn toàn kiêm dung.[14]

Đặc sắc

[Biên tập]

NumPy tham khảoCPython( nhất cá sử dụngVị nguyên tổ mãĐíchTrực dịch khí), nhi tại giá cá Python thật tác trực dịch khí thượng sở tả đích sổ họcDiễn toán phápTrình thức mã thông thường viễn bỉBiên dịchQuá đích tương đồng trình thức mã yếu lai đắc mạn. Vi liễu giải quyết giá cá nan đề, NumPy dẫn nhập liễu đa duy trận liệt dĩ cập khả dĩ trực tiếp hữu hiệu suất địa thao tác đa duy trận liệt đíchHàm thứcDữ vận toán tử. Nhân thử tại NumPy thượng chỉ yếu năng bị biểu kỳ vi châm đối trận liệt hoặc củ trận vận toán đích diễn toán pháp, kỳ chấp hành hiệu suất kỉ hồ đô khả dĩ dữ biên dịch quá đích đẳng hiệuC ngữ ngônTrình thức mã nhất dạng khoái[15].

NumPy đề cung liễu dữMATLABTương tự đích công năng dữ thao tác phương thức, nhân vi lưỡng giả giai vi trực dịch ngữ ngôn, tịnh thả đô khả dĩ nhượng sử dụng giả tại châm đối trận liệt hoặc củ trận vận toán thời đề cung giácThuần lượngVận toán canh khoái đích hiệu năng. Lưỡng giả tương giác chi hạ, MATLAB đề cung liễu đại lượng đích khoách sung công cụ tương ( lệ nhưSimulink); nhi NumPy tắc thị căn cơ ô Python giá cá canh hiện đại, hoàn chỉnh tịnh thả khai phóng nguyên thủy mã đích trình thức ngữ ngôn chi thượng. Thử ngoại NumPy dã khả dĩ kết hợp kỳ tha đích Python khoách sung hàm thức khố. Lệ nhưSciPy,Giá cá hàm thức khố đề cung liễu canh đa dữ MATLAB tương tự đích công năng; dĩ cậpMatplotlib,Giá thị nhất cá dữ MATLAB nội kiến hội đồ công năng loại tự đích hàm thức khố. Nhi tòng bổn chất thượng lai thuyết, NumPy dữ MATLAB đồng dạng thị lợi dụngBLASDữLAPACKLai đề cung cao hiệu suất đích tuyến tính đại sổ vận toán.

ndarray sổ cư kết cấu

[Biên tập]

NumPy đích hạch tâm công năng thị ndarray ( tứcn-dimensional array, đa duy trận liệt ) sổ cư kết cấu. Giá thị nhất cá biểu kỳ đa duy độ, đồng chất tịnh thả cố định đại tiểu đích trận liệt vật kiện. Nhi do nhất cá dữ thử trận liệt tương quan liên đích tư liêu hình thái vật kiện lai miêu thuật kỳ trận liệt nguyên tố đích tư liêu cách thức ( lệ như kỳ tự nguyên tổ thuận tự, tại ký ức thể trung chiêm dụng đích tự nguyên tổ sổ lượng, chỉnh sổ hoặc giả phù điểm sổ đẳng đẳng ).

Cục hạn tính

[Biên tập]

Tại sổ tổ trung sáp nhập hoặc truy gia nguyên tố tịnh bất tượng Python đích list nhất dạng giản đan.np.pad(...)Thật tế thượng sang kiến liễu tân đích cụ hữu mục tiêu hình trạng hòa điền sung trị đích sổ tổ, tương cấp định sổ tổ đích trị phục chế đáo tân sổ tổ trung tịnh phản hồi tân sổ tổ.np.concatenate([a1,a2])Tịnh một hữu trực tiếp liên tiếp lưỡng cá sổ tổ, nhi thị phản hồi tân đích sổ tổ, cai sổ tổ điền sung liễu lưỡng cá nguyên sổ tổ đích trị. Dụngnp.reshape(...)Cải biến sổ tổ đích duy độ chỉ hữu tại sổ tổ trung nguyên tố sổ lượng bất biến đích tình huống hạ tài năng thật hiện. Tạo thành dĩ thượng tình huống đích nguyên nhân thị NumPy đích sổ tổ tất tu chiêm dụng liên tục đích nội tồn không gian. Blaze bao thường thí khắc phục giá cá hạn chế.[16]

Vị kinh thỉ lượng hóa đích toán pháp thông thường vận hành hoãn mạn, nhân vi tha môn tất tu dụng thuần Python phương pháp thật hiện; do vu nhu yếu sang kiến hòa thâu nhập đẳng đại đích lâm thời sổ tổ, bộ phân thao tác đích thỉ lượng hóa khả năng hội tăng trường kỳKhông gian phục tạp độ( lệ như do thường sổ tăng trường đáo tuyến tính ). Bộ phân tiểu tổ thông quá vận hành thời biên dịch ( Runtime compilation of numerical code ) tị miễn giá nhất vấn đề. Khả dữ NumPy tập thành đích khai nguyên giải quyết phương án bao quát numexpr[17]HòaNumba[18].Cython hòa Pythran thị tĩnh thái biên dịch đích giải quyết phương án.

Hứa đa hiện đại đại hình khoa học kế toán ứng dụng đích yếu cầu siêu xuất liễu NumPy sổ tổ đích năng lực. Lệ như, NumPy sổ tổ thông thường gia tái đáo kế toán cơ đích nội tồn trung, nhiên nhi nội tồn khả năng một hữu túc cú đích dung lượng; thử ngoại, NumPy cận tại đan cáCPUThượng tiến hành thao tác, nhi hứa đa tuyến tính đại sổ toán tử khả dĩ thông quá CPU đích tập quần hòa kỳ tha đặc thù ngạnh kiện ( lệ nhưGPU,TPU,Bộ phân thâm độ học tập ứng dụng dã y lại vu giá ta đặc thù ngạnh kiện ) lai gia tốc. Nhân thử, cận kỳ tại Python đích sinh thái trung xuất hiện liễu hứa đa kỳ tha công cụ, lệ như dụng vu phân bố thức sổ tổ đíchDask(Anh ngữ:Dask),Dụng vu GPU kế toán đíchTensorFlowHòaJAXĐẳng. Giá ta khố thông thường thật hiện hoặc mô phảng NumPy đích bộ phânAPI,Nhân thử dụng hộ bất nhu đại lượng cải động tựu khả dĩ bộ thự nguyên tiên sử dụng NumPy đích trình tự.[19]Cận kỳ xuất hiện đích do Nvidia đích CUDA giá cấu gia tốc đíchCuPy(Anh ngữ:CuPy)Khố[20]Triển kỳ liễu khoái tốc kế toán đích tiềm lực, thị NumPy đích trực tiếp thế đại phẩm.[21]

Ngữ pháp

[Biên tập]
Cách điểm
>>>importnumpyasnp
>>>x=np.array([1,2,3])
>>>x
array([1,2,3])
>>>y=np.arange(10)# loại tự Python đích range, đãn thị hồi truyện array
>>>y
array([0,1,2,3,4,5,6,7,8,9])
Cơ bổn vận toán
>>>a=np.array([1,2,3,6])
>>>b=np.linspace(0,2,4)# kiến lập nhất cá array, tại 0 dữ 2 đích phạm vi chi gian nhượng 4 cá điểm 3 đẳng phân
>>>c=a-b
>>>c
array([1.,1.33333333,1.66666667,4.])
>>>a**2
array([1,4,9,36])
Toàn vực phương pháp
>>>a=np.linspace(-np.pi,np.pi,100)
>>>b=np.sin(a)
>>>c=np.cos(a)
Tuyến tính đại sổ
>>>fromnumpy.randomimportrand
>>>fromnumpy.linalgimportsolve,inv
>>>a=np.array([[1,2,3],[3,4,6.7],[5,9.0,5]])
>>>a.transpose()
array([[1.,3.,5.],
[2.,4.,9.],
[3.,6.7,5.]])
>>>inv(a)
array([[-2.27683616,0.96045198,0.07909605],
[1.04519774,-0.56497175,0.1299435],
[0.39548023,0.05649718,-0.11299435]])
>>>b=np.array([3,2,1])
>>>solve(a,b)# giải phương trình thức ax = b
array([-4.83050847,2.13559322,1.18644068])
>>>c=rand(3,3)# kiến lập nhất cá 3x3 tùy cơ củ trận
>>>c
array([[3.98732789,2.47702609,4.71167924],
[9.24410671,5.5240412,10.6468792],
[10.38136661,8.44968437,15.17639591]])
>>>np.dot(a,c)# củ trận tương thừa
array([[53.61964114,38.8741616,71.53462537],
[118.4935668,86.14012835,158.40440712],
[155.04043289,104.3499231,195.26228855]])

Tham khảo tư liêu

[Biên tập]
  1. ^1.01.1https://numpy.org/doc/stable/release/2.0.0-notes.html.
  2. ^Indexing — NumPy v1.20 Manual.numpy.org.[2021-04-06].( nguyên thủy nội dungTồn đươngVu 2023-06-12 ).
  3. ^3.03.13.2Millman, K. Jarrod; Aivazis, Michael.Python for Scientists and Engineers.Computing in Science and Engineering. 2011,13(2): 9–12[2014-07-07].Bibcode:2011CSE....13b...9M.doi:10.1109/MCSE.2011.36.(Nguyên thủy nội dungTồn đương vu 2019-02-19 ).
  4. ^Travis Oliphant.Python for Scientific Computing(PDF).Computing in Science and Engineering. 2007[2013-10-12].(Nguyên thủy nội dung(PDF)Tồn đương vu 2013-10-14 ).
  5. ^5.05.15.25.3David Ascher; Paul F. Dubois; Konrad Hinsen; Jim Hugunin; Travis Oliphant.Numerical Python(PDF).1999[2023-03-17].( nguyên thủy nội dungTồn đương(PDF)Vu 2023-03-17 ).
  6. ^6.06.1van der Walt, Stéfan; Colbert, S. Chris; Varoquaux, Gaël. The NumPy array: a structure for efficient numerical computation. Computing in Science and Engineering (IEEE). 2011,13(2): 22.Bibcode:2011CSE....13b..22V.S2CID 16907816.arXiv:1102.1523可免费查阅.doi:10.1109/MCSE.2011.37.
  7. ^Numarray Homepage.[2006-06-24].( nguyên thủy nội dungTồn đươngVu 2021-06-09 ).
  8. ^Travis E. Oliphant.Guide to NumPy.7 December 2006[2 February2017].
  9. ^Travis Oliphant and other SciPy developers.[Numpy-discussion] Status of Numeric.[2 February2017].(Nguyên thủy nội dungTồn đương vu 2017-02-03 ).
  10. ^NumPy Sourceforge Files.[2008-03-24].( nguyên thủy nội dungTồn đươngVu 2012-03-02 ).
  11. ^History_of_SciPy - SciPy wiki dump.scipy.github.io.[2023-03-17].( nguyên thủy nội dungTồn đươngVu 2023-03-17 ).
  12. ^NumPy 1.5.0 Release Notes.[2011-04-29].( nguyên thủy nội dungTồn đươngVu 2021-12-09 ).
  13. ^PyPy Status Blog: NumPy funding and status update.[2011-12-22].( nguyên thủy nội dungTồn đươngVu 2023-03-25 ).
  14. ^NumPyPy Status.[2013-10-14].( nguyên thủy nội dungTồn đươngVu 2013-10-16 ).
  15. ^SciPy PerformancePython.[2006-06-25].(Nguyên thủy nội dungTồn đương vu 2015-01-13 ).
  16. ^Blaze Ecosystem Docs.Read the Docs.[17 July2016].[Thất hiệu liên kết]
  17. ^Francesc Alted.numexpr.GitHub.[8 March2014].( nguyên thủy nội dungTồn đươngVu 2023-03-24 ).
  18. ^Numba.[8 March2014].( nguyên thủy nội dungTồn đươngVu 2023-06-01 ).
  19. ^Charles R Harris; K. Jarrod Millman; Stéfan J. van der Walt; et al.Array programming with NumPy(PDF).Tự nhiên. 2020-09-16,585(7825): 357–362.ISSN 1476-4687.PMC 7759461可免费查阅.PMID 32939066.arXiv:2006.10256可免费查阅.doi:10.1038/S41586-020-2649-2.WikidataQ99413970( anh ngữ ).,WikidataQ99413970
  20. ^Shohei Hido - CuPy: A NumPy-compatible Library for GPU - PyCon 2018,[2021-05-11],( nguyên thủy nội dungTồn đươngVu 2021-12-21 )( anh ngữ )
  21. ^Entschev, Peter Andreas.Single-GPU CuPy Speedups.Medium. 2019-07-23[2021-05-11].( nguyên thủy nội dungTồn đươngVu 2023-03-16 )( anh ngữ ).

Khoách triển duyệt độc

[Biên tập]

Ngoại bộ liên kết

[Biên tập]