Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Matlab và Octave đều dễ dàng hơn để thực hiện một số công việc số cơ bản cho mọi người (thường xuyên là sinh viên kỹ thuật và khoa học) chỉ với kinh nghiệm lập trình thô sơ. Trong đại học, bạn viết rất ít mã, nhưng thực hiện rất nhiều âm mưu và rất hữu ích khi Matlab IDE có tất cả những điều đó được xây dựng tự nhiên. Bây giờ tôi thích Python & Julia, nhưng nhận được một cái gì đó như Matplotlib làm việc với Python sẽ khó khăn hơn với tôi ở trường đại học. Ngoài ra, MATLAB có sự hỗ trợ bản địa cho ma trận và các hoạt động số (đảo ngược, chuyển vị, giải quyết) mà sinh viên cần mà không phải học cách sử dụng một cái gì đó như Numpy. Sở thích của tôi phụ thuộc rất nhiều vào việc tôi đang làm công việc khám phá hay cố gắng tạo ra phần mềm chất lượng cao để chạy trong sản xuất.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Matlab:

    exp(-i*pi*[0 0.5 1])
Python: ________ 1 Lưu ý rằng bạn không thể sử dụng Math.Exp cho các số phức và cả Math.EXP hay CMATH.EXP hoạt động cho các mảng, bạn không cần NP.Exp riêng biệt. Ngoài ra, trong khi NP.EXP thực sự hoạt động trong danh sách, thì phép nhân không, vì vậy bạn cần lưu ý rằng các biến nào là danh sách python (mà bạn chủ yếu không thể thực hiện số học) và đó là mảng numpy.

Khi bạn có kinh nghiệm trong Python, bạn biết những khác biệt này bằng trái tim. Nhưng nếu bạn là một chuyên gia về miền và muốn kiểm tra một ý tưởng nhanh chóng, bạn sẽ thấy rất nhiều tin nhắn kiểu kiểu từ Python, bạn cần phải dẫn đầu các hướng dẫn sử dụng Google để sắp xếp nó và nó sẽ làm bạn chậm lại 10 lần.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Không ai trong số những gì bạn nói là sai, nhưng:

1) Không cần phải nhập bất cứ thứ gì ngoài Numpy để nhận được tại PI hoặc E (xem phần liên tục của tài liệu Numpy).

2) Nếu bạn bọc tất cả những thứ của bạn, bạn mong đợi sẽ hoạt động như vectơ/ma trận với np.array () và chỉ sử dụng các phương thức NP để vận hành chúng, bạn sẽ bị không khớp hình dạng thay vì kiểu mẫu, số phận tốt hơn một chút.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Tôi làm việc như một nhà toán học ứng dụng viết mã số và tôi thích nguyên mẫu trong MATLAB/OCTAVE vì một số lý do:

1. Tôi tin rằng việc gỡ lỗi một thuật toán trong MATLAB/Octave sẽ dễ dàng hơn nhiều so với Python. Khi tôi rơi vào trình gỡ lỗi, tôi có thể ngay lập tức kiểm tra những thứ như giá trị riêng của ma trận với một "eig (a)" đơn giản hoặc nhìn vào sự thưa thớt một cách trực quan với "Spy (a)". Mặc dù điều này là có thể trong Python, tôi tin rằng nó dễ dàng hơn nhiều trong MATLAB/OCTAVE vì các chức năng toán học cốt lõi có sẵn ngay lập tức.

2. Liên kết MATLAB/OCTAVE vào mã nhân tố tốt trực tiếp và cung cấp bảo hiểm giấy phép theo những cách khác nhau. Ví dụ, cả hai mã liên kết với những thứ như Suitesparse, cho phép truy cập vào các yếu tố choleski và QR nhanh. Những thói quen này có giấy phép khác nhau, nhưng những người tốt là GPL/thương mại được cấp phép kép. Octave liên kết vào mã theo cấp phép GPL. MATLAB cung cấp giấy phép thương mại. Điều này có nghĩa là tôi có thể cung cấp mã MATLAB/OCTAVE của khách hàng và họ có thể chọn họ có muốn bảo hiểm giấy phép bằng MATLAB hay để phát hành mã theo GPL và chúng tôi không chạy AFOUL với giấy phép. Thẳng thắn, không phải đi ra ngoài và có được giấy phép thứ hai cho Suitesparse là tốt.

3. Theo tôi, C-API trong MATLAB/OCTAVE lành mạnh hơn Python. Nó không tuyệt vời, nhưng các ma trận được trình bày theo một phương pháp hợp lý trong MATLAB/OCTAVE, vì vậy thực sự, thực sự dễ dàng liên kết với mã C/C ++ hoặc Fortran cũ. Thông thường, tôi đã sử dụng thủ thuật này để gỡ lỗi mã C/C ++ vì tôi có thể hình dung nhanh hơn các ma trận trong MATLAB/OCTAVE hơn là tôi có thể sử dụng ngôn ngữ bản địa.

Đối với sự khác biệt giữa Matlab và Octave, tôi thích Octave hơn MATLAB kể từ:

1. Octave sẽ lành mạnh hơn khi giao dịch với C-API. Matlab không tệ, nhưng đôi khi nó có thể rất khó khăn và tôi không cảm thấy mình nên đặt DBMEX theo cách thủ công.

2. Octave sử dụng phiên bản hệ thống của GCC và không đóng gói riêng. MATLAB đã làm và trong nhiều năm kể từ khi Matlab chậm phát phiên bản GCC của họ, đây là một phiền toái lớn khi liên kết với các mã sử dụng C ++ 11/14. Matlab đã làm rất tốt trong vài năm cuối cùng bắt kịp, nhưng tôi vẫn thích sử dụng trình biên dịch hệ thống.

3. Có lỗi trong một số gói quãng tám. MATLAB có xu hướng có ít lỗi như vậy. Hầu hết thời gian, nó không quan trọng cho đến khi nó làm. Chỉ cần nộp lỗi với quãng tám. Họ có thể chậm, nhưng có rất nhiều người tình nguyện thời gian của họ và nộp các lỗi đó hoặc giúp khắc phục đây chỉ là chi phí của loại phần mềm này.

Và, hãy nhìn xem, nếu bạn thích Python, thật tuyệt. Tôi cũng làm việc với Python. Tuy nhiên, một lần nữa, để tạo mẫu một thuật toán kỹ thuật, tôi thích quãng tám.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Đó là một lập luận được suy nghĩ tốt và tôi đánh giá cao nó.

Tôi cũng sử dụng MATLAB/OCTAVE khá nhiều cho việc tạo mẫu thuật toán số và chủ yếu là ghét nó. Ngôn ngữ có một đường cong học tập nông, đúng, nhưng đối với phần mềm phức tạp, nó trở nên xấu xí rất nhanh. Nó không phải là một ngôn ngữ được thiết kế tốt, và nếu bạn có bất kỳ nền tảng CS nào trở nên rất hạn chế.

Điều mà Matlab mang đến cho bàn là các hộp công cụ số chất lượng cực kỳ cao. Octave có được một vài trong số đó nhưng khác xa với tất cả chúng, làm cho nó theo kinh nghiệm của tôi trở thành một vận động viên nghèo.

Bất cứ khi nào tôi có một lựa chọn, bây giờ tôi đến trước Julia. Ngôn ngữ chỉ làm cho tôi hạnh phúc và cơ sở hạ tầng số gần như đủ.

Ngoại trừ một cái gì đó như simulink. Khi bạn cần Simulink, không có gì khác ngoài đó, đó là một sự thay thế hợp lệ.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Chắc chắn và tôi đồng ý với nhiều khó khăn liên quan đến MATLAB/OCTAVE. Khi tôi muốn tập hợp một phần mềm hoàn chỉnh hơn làm những việc như: Có GUI, tương tác với cơ sở dữ liệu, độ dẫn điện mạng hoặc các tệp phân tích cú pháp, tôi nghĩ rằng MATLAB/OCTAVE là một lựa chọn kém.

Một ngôn ngữ như Julia cố gắng thu hẹp khoảng cách đó. Vấn đề của tôi với Julia là chúng tôi không nhận được giấy phép bảo hiểm cho những thứ như Suitesparse ngay cả với giấy phép Juliapro. Matlab đã thực hiện một công việc tuyệt vời để đối phó với điều này và rất đáng để tôi phí giấy phép của tôi mỗi năm, để khách hàng của tôi và tôi không phải đối phó với nó. Cho đến khi điều này thay đổi, đó là một điều không phải là một cơ hội đối với tôi.

Theo như sự khác biệt trong các gói giữa Matlab và Octave, tôi sẽ cho rằng nó phụ thuộc. Đối với các thói quen cấp thấp hơn của họ, họ thường sử dụng cùng một mã. Cả hai đều sử dụng arpack để giải quyết eigenvalue. Cả hai đều sử dụng các dạng sparsesuite, umfpack, lapack và thứ tương tự cho đại số của họ. Đối với tôi, tôi có xu hướng chỉ sử dụng các thói quen cấp thấp hơn này, vì vậy có rất ít hoặc không có sự khác biệt về hiệu suất hoặc hiệu quả giữa hai. Đối với đấu trường hộp công cụ, tôi biết có sự khác biệt và tôi đồng ý rằng điều đó có thể gây khó chịu. Tôi cho rằng quan điểm của tôi là nó thực sự phụ thuộc vào đâu trên phổ của các cấp thấp hơn đến mức trừu tượng toán học cấp cao hơn mà chúng ta cần. Đối với sự trừu tượng hóa cấp thấp, tôi cảm thấy Octave hoạt động rất tốt và nó là một công cụ quan trọng đối với tôi.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Một điều khác Octave/Matlab đã vượt qua Python: sẽ dễ dàng và rõ ràng hơn nhiều để diễn đạt các thuật toán số trong MATLAB so với Python, vì Python không được thiết kế như một ngôn ngữ mảng.

Trích dẫn: Đi trên GitHub, tìm kiếm PRML và xem kết quả Python so với MATLAB.

Tôi không biết tại sao mọi người có vấn đề chuyển mã MATLAB đến Octave; Nó đã bị kéo và thả cho tôi ngoại trừ các phụ thuộc gói bí truyền hơn.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Tôi chỉ có những trải nghiệm ngắn với MATLAB/OCTAVE khi còn là sinh viên nhưng thấy rằng việc viết MATLAB/OCTAVE chứ không phải Matlab hoặc Octave rất khó khăn ... (iirc chủ yếu với các chức năng thư viện có tên khác nhau)

Đây có phải là một mối phiền toái cũng dành cho bạn? Tôi sẽ quan tâm đến cách bạn vượt qua điều này (yêu cầu một người bạn làm việc trong xử lý hình ảnh ở Matlab)

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Đối với tôi, nó phụ thuộc vào cách phụ thuộc vào hộp công cụ của bạn. Octave Forge có rất nhiều thư viện thực sự đẹp, nhưng giao diện của chúng có xu hướng khác với các hộp công cụ MATLAB, do đó, việc nhận mã để qua lại có thể là một nỗi đau. Trong lõi MATLAB/octave, hầu hết các mã là giống nhau với một số khác biệt nhỏ. Ví dụ, Octave không quan tâm đến việc gói một dòng với ..., nhưng Matlab thì có. Thành thật mà nói, đó là vấn đề phổ biến nhất mà tôi có, nhưng trình phân tích cú pháp MATLAB tìm thấy nó và thông thường nó không mất hơn vài phút để sửa chữa mọi thứ.

Tôi nhớ lại có một số khác biệt nhỏ trong cách viết các tệp MEX, nhưng tôi đang tìm kiếm bây giờ và tất cả các thói quen tôi thường sử dụng đều được nhân đôi giữa hai tệp. Tôi sẽ nói rằng tôi không thích xây dựng các tệp MEX bằng lệnh MEX bên trong trình thông dịch. Cá nhân, tôi thấy dễ dàng hơn khi sử dụng một hệ thống xây dựng như CMake. Các tệp MEX chỉ là các thư viện được liên kết động liên kết với libmx và libmex ở phía matlab hoặc liboctinterp ở phía octave. Họ tìm tên Mexfunction ở cuối của chúng tôi. Do đó, tôi có một lá cờ trong tệp xây dựng để chuyển đổi giữa các tiêu đề và thư viện MATLAB và quãng tám tùy thuộc vào nền tảng mà tôi muốn xây dựng. Chỉ cần chắc chắn tách các nhị phân vì những nhị phân vì chúng không thực sự tương thích giữa hai và cấp phép giữa chúng cũng khác nhau.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Là một người vẫn còn khó chịu vì chương trình cấp bằng của họ (một kỹ thuật không phải CS) đã khiến họ sử dụng Matlab thay vì Python, tôi thấy khó có thể không đồng ý với những điểm đó. Tôi sẽ nói rằng tôi chắc chắn thích lập chỉ mục mảng dựa trên 1.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Đây là một lập luận khó khăn theo quan điểm của tôi.

Một trường đại học nên sử dụng một cái gì đó như MATLAB/OCTAVE hoặc PYTHON để dạy các phương pháp số và các lớp liên quan?

MATLAB thường chỉ ~ 20 đô la cho một sinh viên kỹ thuật và bản thân ngôn ngữ chủ yếu là bắt buộc với ma trận là loại dữ liệu mặc định. Ngoài ra, sơ đồ và kiểm tra biến có sẵn như là một phần của cài đặt mặc định.

Python được định hướng đối tượng. Mặc dù điều đó chắc chắn là tốt hơn (tốt ... hầu hết sẽ tranh luận như vậy) từ góc độ kỹ thuật phần mềm, nhưng đó là một rào cản cho một sinh viên kỹ thuật với một chút nền tảng C. Tôi vẫn có thể nhớ hầu hết các phương pháp số của tôi Bài tập về nhà. Xây dựng ma trận này, đảo ngược nó, thực hiện phương pháp của Simpson ... blah blah. Điều này chắc chắn là có thể ở Python, nhưng tôi đã phải tìm ra thư viện nào để nhập, phân phối Python nào để sử dụng (nếu bạn không sử dụng Anaconda hoặc Winpython, việc làm cho một số thư viện có thể làm việc là khó khăn) và vô số Các vấn đề khác.

Nói tóm lại, mặc dù tôi thích Python hơn, Matlab có thể là lựa chọn tốt hơn bởi giáo viên của tôi vào thời điểm đó cho phép chúng tôi tập trung vào các phương pháp và hệ thống kiểm soát số thay vì bị lạc trong hệ sinh thái Python phong phú có đường cong học tập cao hơn.

Điều đó có nghĩa là Python không thể làm việc gì cả? Không, tôi cũng không mua nó, nhưng nghĩ rằng nó đòi hỏi một cách tiếp cận khác. Nếu tôi là trưởng khoa kỹ thuật, tôi sẽ yêu cầu một khóa học gọi là giới thiệu về Python khoa học, tất cả là về việc thiết lập phân phối Anaconda tốt với máy tính xách tay Spyder IDE và Jupyter với một số mã hóa Python cơ bản. Sau đó, khi đến lúc thực hiện các phương pháp số của bạn, xử lý tín hiệu số, hệ thống điều khiển ... vv, giáo viên có thể lưu trữ các máy tính xách tay Jupyter để khám phá tương tác chủ đề với latex, mã mã và đồ thị. Có một trường đại học ở đâu đó mà giáo sư có một cuốn sách DSP đầy đủ được thực hiện thông qua Notebook Jupyter và nó có vẻ vinh quang.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

> Matlab thường chỉ ~ $ 20 cho một sinh viên kỹ thuật

Đoán xem, rõ ràng cú đánh đầu tiên không phải lúc nào cũng miễn phí. Có những người đăng trong chủ đề này phải trả tới 20k mỗi năm cho một Matlab được cấp phép đầy đủ.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

1.) Tôi không chắc tại sao bạn dường như nhận được một giai điệu mạnh mẽ :)

2.) Tôi đã đăng một số bình luận ở đây bao gồm một ý kiến ​​cho thấy rằng chi phí có thể lên tới 20 nghìn đô la, vì vậy tôi nhận thức rõ về thực tế đó, nhưng nó không liên quan đến nhận xét trên vì 20 nghìn đô la dành cho các chuyên gia làm việc Và không phải là sinh viên kỹ thuật kém, nơi chi phí thực sự là ~ 20 đô la như tôi đã trả. Lưu ý rằng $ 20K là điên rồ bởi một số tiêu chuẩn, nhưng phần mềm kỹ thuật thường cao hơn nhiều so với thế. Giấy phép hàng năm trong phạm vi 0,5 triệu là phổ biến trong ngành của tôi, vì vậy 20k đô la không được coi là không hợp lý chỉ dựa trên chi phí. Điều đó là không hợp lý với tôi khi họ có các lựa chọn thay thế miễn phí.

3.) Tôi đã nói nhiều lần ở đây rằng tôi thích Python và Julia vì chúng sâu hơn và không tốn một cánh tay và một chân. Tuy nhiên, điểm trên của tôi vẫn đứng rằng Matlab không phải là một giải pháp tồi cho một học sinh. Tất nhiên có một số khóa, nhưng không quá tệ khi di chuyển sau khi bạn tốt nghiệp và không còn có thể có được tỷ lệ sinh viên.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Có thêm một chút thông tin về điều đó ở trên. Tôi là một chuyên gia và chi phí ban đầu của tôi là khoảng 2 nghìn đô la và chi phí hàng năm của tôi là khoảng 400 đô la. Tôi không cần phải trả tiền hàng năm, nhưng tôi thích các bản cập nhật và tôi thích nhận được phản hồi khi có gì đó bị hỏng và tôi đang trong thời hạn chặt chẽ.

Tôi không thể nhấn mạnh rằng những gì bạn mua với Matlab là bảo hiểm giấy phép. Octave và Julia móc vào nhiều thư viện chính xác, nhưng họ không thương lượng giấy phép thương mại cho những thứ như người giải quyết hệ thống tuyến tính. Điều đó có nghĩa là các nhị phân phân tán có thể phải chịu những thứ như GPL. Nếu đó là những gì bạn muốn, tuyệt vời. Tôi thích GPL cho một loại phần mềm nhất định được cung cấp cho một loại khách hàng nhất định. Tuy nhiên, nó không phải là một khách hàng của tôi, vì vậy họ mua MATLAB.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Đó là một điểm khá tốt và hữu ích. Tôi không bán phần mềm (chỉ cần sử dụng những gì tôi viết), vì vậy tôi không lo lắng về các nhị phân được mã hóa vào lúc này. Nếu tôi thực sự bán phần mềm mặc dù tôi có thể sẽ như vậy. GPL luôn là một thanh kiếm hai lưỡi đối với tôi. Chắc chắn nó là tốt đẹp và miễn phí như trong bia và tự do, nhưng về cơ bản nó cũng có nghĩa là nó hoàn toàn không đi.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Đối số cho một ngôn ngữ như Octave/Matlab tương tự như lý do tại sao phần mềm GUI cùng tồn tại với các lựa chọn thay thế CLI. Đối tượng Octave/Matlab có thể không phải là kỹ thuật và yêu cầu một công cụ đã tích hợp trong các mô -đun/thư viện cho các lô nâng cao (không có nhiều đau kỹ thuật), v.v.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Tôi làm việc trong một môi trường học thuật. Nếu tôi có lựa chọn, tôi sẽ thích Python (hoặc thậm chí Julia), nhưng thường xuyên MATLAB là những gì phù hợp trong khóa học thân thấp hơn (không phải CS) vì đó là những gì nhiều kỹ sư đã quen và dạy học sinh của họ biết . Tôi thà sử dụng Octave hơn MATLAB trong các cài đặt như vậy và khuyến khích sinh viên làm điều tương tự. Ngoài ra, Matlab vẫn còn phổ biến hơn nhiều (ít nhất là trong các khóa học kỹ thuật đại học, không chắc chắn về việc sử dụng thực tế trong ngành) so với Python hoặc các công cụ tương tự khác, và thật tốt khi có một phần mềm thay thế miễn phí.

Điều đó nói rằng, đôi khi tôi cảm thấy Octave là một bản sao của Matlab, mụn cóc và tất cả, và tôi muốn từ bỏ một số khả năng tương thích để cải thiện thực sự. (Đôi khi tôi cảm nhận về LibreOffice hoặc OpenOffice.)

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Đối với những người cũng sử dụng MATLAB/SIMULINK để mô phỏng, Modelica có thể là một giải pháp thay thế tốt với việc triển khai mở, cũng có ứng dụng công nghiệp nghiêm túc như kiểm soát các nhà máy điện.

Hướng dẫn is python better than octave? - python có tốt hơn quãng tám không?

Đối với những thứ đơn giản, chỉ cần mở GUI+repling và bắt đầu vẽ đồ thị trong MATLAB. Tuyệt vời cho đồ họa tài liệu nhanh.

Octave có dễ hơn Python không?

Nhưng bạn không tạo mã cho các bộ điều khiển, v.v ... Một điều khác Octave/Matlab đã vượt qua Python: sẽ dễ dàng và rõ ràng hơn để diễn đạt các thuật toán số trong MATLAB so với Python, vì Python không được thiết kế như một ngôn ngữ mảng.it's a lot easier and clearer to express numeric algorithms in Matlab than Python, as Python isn't designed as an array language.

Octave có tốt hơn python cho học máy không?

Như đã đề cập trước đây, sức mạnh của R là trong phân tích thống kê.Octave là tốt để phát triển các thuật toán học máy cho các vấn đề số.Python là một ngôn ngữ lập trình chung mạnh mẽ trong việc xây dựng thuật toán cho cả khai thác số và văn bản.Octave is good for developing Machine Learning algorithms for numeric problems. Python is a general programming language strong in algorithm building for both number and text mining.

Octave có giống như Python không?

Đó là một ngôn ngữ được giải thích như Python.Vì cú pháp của Octave chủ yếu tương thích với MATLAB, nên nó thường được mô tả như là một sự thay thế miễn phí cho MATLAB.Octave không được liệt kê trong số các ngôn ngữ lập trình phổ biến nhất, nhưng MATLAB, vì vậy Octave khá phổ biến theo một nghĩa nào đó.. Since Octave's syntax is mostly compatible with MATLAB, it is often described as a free alternative to MATLAB. Octave is not listed among the most popular programming languages, but MATLAB is, so Octave is rather popular in a sense.

Tôi có thể sử dụng quãng tám trong Python không?

OCT2Py cho phép bạn gọi một cách liền mạch các chức năng M-Files và Octave từ Python.Nó quản lý phiên OCTAVE cho bạn, chia sẻ dữ liệu đằng sau hậu trường bằng các tệp MAT.Việc sử dụng đơn giản như: >>> oc = oct2py.. It manages the Octave session for you, sharing data behind the scenes using MAT files. Usage is as simple as: >>> oc = oct2py.