Hướng dẫn python slower than matlab - python chậm hơn matlab

Cuối cùng, tôi đã thành công trong việc thay đổi mã MATLAB thành mã Python.

Tuy nhiên, trái với những gì tôi đã nghe, tốc độ thực hiện của Python rất chậm.

Matlab có tốt hơn ở phía xử lý hình ảnh những ngày này không?

Tất nhiên, tôi không có lựa chọn nào khác ngoài việc sử dụng Python vì công ty không mua Matlab ...

PS. Chạy Python trong môi trường visual studioIDLE.

Nếu có cách để tăng tốc Python, xin hãy giúp tôi.

## Exercise Python image processing ##

import numpy as np
import cv2
import matplotlib.pyplot as plt

B = cv2.imread(r'D:\remedi\Exercise\Xray\Offset.png', -1) # offset image

for i in range(2,3):

    org_I = cv2.imread(r'D:\remedi\Exercise\Xray\objects\object (' + str(i) + ').png', -1) # original image

    w = cv2.imread(r'D:\remedi\Exercise\Xray\white\white (' + str(i) + ').png', -1) # white image

    # dead & bad pixel correction
    corrected_w = w.copy()
    corrected_org_I = org_I.copy()

    c = np.mean(corrected_w)
    p = np.abs(corrected_w - c)

    sens = 0.7
    [num_y, num_x] = np.where((p < c*sens) | (p > c*sens))

    ar = np.zeros((3,3))
    ar2 = np.zeros((3,3))
    for n in range(0, num_y.shape[0]):
        for j in range(-1,2):
            for k in range(-1,2):
                if num_y[n]+j+1 == 0 or num_x[n]+k+1 == 0 or num_y[n]+j+1 == 577 or num_x[n]+k+1 == 577:
                    ar[j+1][k+1] = 0
                    ar2[j+1][k+1] = 0
                else:
                    ar[j+1][k+1] = corrected_w[num_y[n]+j-1][num_x[n]+k-1]
                    ar2[j+1][k+1] = corrected_org_I[num_y[n]+j-1][num_x[n]+k-1]
        ar[1][1] = 0
        ar2[1][1] = 0
        corrected_w[num_y[n]][num_x[n]] = np.sum(ar)/np.count_nonzero(ar)
        corrected_org_I[num_y[n]][num_x[n]] = np.sum(ar2)/np.count_nonzero(ar2)

c = np.mean(corrected_w) # constant

FFC = np.uint16(np.divide(c*(corrected_org_I-B), (corrected_w-B))) # flat field correction

plt.subplot(2,3,1), plt.imshow(org_I, cmap='gray'), plt.title('Original Image')
plt.subplot(2,3,2), plt.imshow(corrected_org_I, cmap='gray'), plt.title('corrected original Image')
plt.subplot(2,3,3), plt.imshow(FFC, cmap='gray'), plt.title('FFC')
plt.subplot(2,3,4), plt.imshow(w, cmap='gray'), plt.title('w')
plt.subplot(2,3,5), plt.imshow(corrected_w, cmap='gray'), plt.title('corrected w')
plt.subplot(2,3,6), plt.imshow(B, cmap='gray'), plt.title('B')
plt.show()

Gần đây tôi đã chuyển từ Matlab sang

classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
0. Trong khi chuyển đổi một trong những mã dài của tôi, tôi đã rất ngạc nhiên khi thấy
classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
0 rất chậm. Tôi đã mô tả và truy tìm vấn đề với một chức năng gây khó khăn cho thời gian. Hàm này đang được gọi từ nhiều nơi khác nhau trong mã của tôi (là một phần của các chức năng khác được gọi là đệ quy). Profiler gợi ý rằng 300 cuộc gọi được thực hiện cho chức năng này trong cả Matlab
classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
0.

Nội phân Chính showShow

  • Lịch sử ngắn gọn của Matlab
  • Một con đường đơn giản đến sự nghiệp của bạn trong phát triển phụ trợ
  • Lịch sử ngắn gọn của Python
  • Là Python hay Matlab tốt hơn cho các lập trình viên mới bắt đầu?
  • Nhận công việc phát triển phụ trợ bằng cách học CS
  • Python hay Matlab có hiệu quả hơn không?
  • Python hay Matlab là tốt nhất cho một công việc lập trình?
  • Cái nào xử lý hình ảnh tốt hơn, matlab hay python?
  • Python hay Matlab là tốt nhất cho việc học máy?
  • Học phát triển phụ trợ theo cách đúng đắn
  • Matlab hay Python là tốt nhất cho khoa học dữ liệu?
  • Matlab so với Python: Cái nào tốt nhất cho việc học sâu?
  • Matlab so với Python: Cái nào tốt nhất cho tốc độ?
  • Matlab so với Python: Cái nào tốt nhất cho tương lai?
  • Matlab so với Python: Cái nào tốt nhất cho hầu hết mọi người?

Tôi thường cố gắng tránh quá quyết đoán trong các loại bài viết này, bởi vì sự thật hiếm khi là một ngôn ngữ tốt nhất so với một ngôn ngữ khác. Nhưng tôi tin rằng đây là một trong số ít trường hợp một ngôn ngữ rõ ràng vượt trội so với ngôn ngữ khác vì nhiều lý do. MATLAB có một vài ứng dụng hữu ích làm cho nó trở thành một lựa chọn tốt cho một nhóm người rất hẹp. Python, trong khi đó, chỉ phát triển hữu ích hơn cho nhiều người hơn. Chỉ có nhiều hướng dẫn hơn và nhiều hướng dẫn hơn để tìm hiểu nó và sử dụng nó.

classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
4

Tôi không nói rằng bạn không nên học Matlab nếu bạn có cơ hội. . Khi nói đến việc lựa chọn giữa Matlab so với Python, Python sẽ thắng.

classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end

Gần đây tôi đã chuyển từ Matlab sang

classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
0. Trong khi chuyển đổi một trong những mã dài của tôi, tôi đã rất ngạc nhiên khi thấy
classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
0 rất chậm. Tôi đã mô tả và truy tìm vấn đề với một chức năng gây khó khăn cho thời gian. Hàm này đang được gọi từ nhiều nơi khác nhau trong mã của tôi (là một phần của các chức năng khác được gọi là đệ quy). Profiler gợi ý rằng 300 cuộc gọi được thực hiện cho chức năng này trong cả Matlab
classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
0.

xVec=[   
49.7030   78.9590
42.6730   11.1390
23.2790   89.6720
75.6050   25.5890
81.5820   53.2920
44.9680    2.7770
38.7890   78.9050
39.1570   33.6790
33.2640   54.7200
4.8060   44.3660
49.7030   78.9590
42.6730   11.1390
23.2790   89.6720
75.6050   25.5890
81.5820   53.2920
44.9680    2.7770
38.7890   78.9050
39.1570   33.6790
33.2640   54.7200
4.8060   44.3660
];
N=size(xVec,1);
kex1=ExampleKernel1;
tic
for i=1:300
    K=kex1.kernel_2D(N,xVec,N,xVec);
end
toc

Nội phân Chính show

clear all
>> test
Elapsed time is 0.022426 seconds.
>> test
Elapsed time is 0.009852 seconds.

classdef ExampleKernel1 < handle  
methods (Static)
    function [kernel] = kernel_2D(M,x,N,y) 
        kernel  = zeros(M,N);
        for i= 1 : M
            for j= 1 : N
                % Define the custom kernel function here
                kernel(i , j) = sqrt((x(i , 1) - y(j , 1)) .^ 2 + ...
                                (x(i , 2) - y(j , 2)) .^2 );             
            end
        end
    end
end
end
5

Lịch sử ngắn gọn của Matlab

from numpy import zeros
from math import sqrt
class CustomKernels:
"""Class for defining the custom kernel functions"""
    @staticmethod
    def exampleKernelA(M, x, N, y):
        """Example kernel function A"""
        kernel = zeros([M, N])
        for i in range(0, M):
            for j in range(0, N):
                # Define the custom kernel function here
                kernel[i, j] = sqrt((x[i, 0] - y[j, 0]) ** 2 + (x[i, 1] - y[j, 1]) ** 2)
        return kernel

Một con đường đơn giản đến sự nghiệp của bạn trong phát triển phụ trợ

import numpy as np
from CustomKernels import CustomKernels
from time import perf_counter

xVec = np.array([
    [49.7030,  78.9590],
    [42.6730,  11.1390],
    [23.2790,  89.6720],
    [75.6050,  25.5890],
    [81.5820,  53.2920],
    [44.9680,   2.7770],
    [38.7890,  78.9050],
    [39.1570,  33.6790],
    [33.2640,  54.7200],
    [4.8060 ,  44.3660],
    [49.7030,  78.9590],
    [42.6730,  11.1390],
    [23.2790,  89.6720],
    [75.6050,  25.5890],
    [81.5820,  53.2920],
    [44.9680,   2.7770],
    [38.7890,  78.9050],
    [39.1570,  33.6790],
    [33.2640,  54.7200],
    [4.8060 ,  44.3660]
    ])
N = xVec.shape[0]
kex1 = CustomKernels.exampleKernelA
start=perf_counter()
for i in range(0,300):
    K = kex1(N, xVec, N, xVec)
print(' %f secs' %(perf_counter()-start))

Lịch sử ngắn gọn của Python

%run test.py
 0.940515 secs
%run test.py
 0.884418 secs
%run test.py
 0.940239 secs

Là Python hay Matlab tốt hơn cho các lập trình viên mới bắt đầu?

Nhận công việc phát triển phụ trợ bằng cách học CS

Python hay Matlab có hiệu quả hơn không?

Python hay Matlab là tốt nhất cho một công việc lập trình?

Cái nào xử lý hình ảnh tốt hơn, matlab hay python?

Python hay Matlab là tốt nhất cho việc học máy?

Học phát triển phụ trợ theo cách đúng đắn

Matlab hay Python là tốt nhất cho khoa học dữ liệu?

Matlab so với Python: Cái nào tốt nhất cho việc học sâu?

Matlab so với Python: Cái nào tốt nhất cho tốc độ?

Matlab so với Python: Cái nào tốt nhất cho tương lai?

Nói tóm lại, các mã sau đây tóm tắt vấn đề trong tay:

Nếu bạn thấy mình trong chiếc thuyền đó, bài viết này là dành cho bạn.

Lịch sử ngắn gọn của Matlab

MATLAB, một chữ viết tắt của Phòng thí nghiệm ma trận, là một nền tảng lập trình tiên quyết được thiết kế cho các kỹ sư và nhà khoa học để tạo và phân tích các hệ thống và sản phẩm. Ban đầu, nó thậm chí còn là một ngôn ngữ - đó là một máy tính ma trận tương tác đơn giản. Nó cũng là một sản phẩm thương mại và đi kèm với môi trường làm việc của riêng mình. Trong lịch sử, đây được coi là một lợi thế - các công ty lớn và các tổ chức giáo dục thích có ai đó gọi khi mọi thứ tan vỡ. Ngày nay, gần như tất cả các ngôn ngữ lập trình được sử dụng trong sản phẩm là nguồn mở và miễn phí.

Giống như chúng tôi đã đề cập, MATLAB không phải là một sản phẩm nguồn mở, điều đó có nghĩa là bạn không có quyền truy cập vào các hoạt động bên trong của mã độc quyền của nó. Nó thống trị trong các thiết lập học thuật, trong đó sức mạnh tính toán của nó làm cho nó phổ biến cho các trường có thành phần số. Tuy nhiên, nó có thể cực kỳ tốn kém cho người tiêu dùng hàng ngày để mua ngay cả một giấy phép.

Ban đầu được phát triển bởi Math Magician và lập trình viên máy tính Cleve Moler vào những năm 1960, Moler đã không bán nó ban đầu. Vào thời điểm đó, nó được phân phối miễn phí cho các trường đại học. Đó là cho đến những năm 1980 khi nó được phát hành dưới dạng sản phẩm thương mại.

Một con đường đơn giản đến sự nghiệp của bạn trong phát triển phụ trợ

Tốc độ của các khóa học JavaScript, Python và Go của Boot.Dev đã hoàn hảo cho tôi. Cộng đồng đa dạng trong Discord là một vụ nổ, và các thành viên khác nhanh chóng giúp đỡ với các câu trả lời và giải thích chi tiết.

- Daniel Gerep từ Cassia, Brasil

Lịch sử ngắn gọn của Python

Python là một ngôn ngữ rất khác. Nó được Wikipedia định nghĩa chính thức là một ngôn ngữ lập trình đa năng cấp cao được giải thích. Nó có nguồn mở, có nghĩa là bất kỳ ai cũng có thể truy cập nó, đào xung quanh trong ruột để xem cách thức hoạt động của nó và thậm chí tạo ra các gói riêng của họ cho nó. Đây là một trong những lợi thế chính của Python so với Matlab.

Python đã được phát hành vào cuối những năm 1980 và lần đầu tiên được triển khai vào tháng 12 năm 1989. Nó đã xuất hiện kể từ đó, phát triển phổ biến hơn và luôn được xếp hạng là một trong những ngôn ngữ phổ biến nhất hiện nay. Nó có một chức năng lớn và đang phát triển. Nó rất tốt cho các nhiệm vụ đơn giản mà người mới bắt đầu có thể quan tâm và các nhiệm vụ phức tạp mà các tổ chức có thể muốn.

Là Python hay Matlab tốt hơn cho các lập trình viên mới bắt đầu?

Nếu bạn là một lập trình viên hoàn toàn mới và bạn đang tự hỏi liệu bạn nên học Matlab hay Python, câu trả lời có lẽ là Python, ngay cả khi bạn có quyền truy cập miễn phí vào Matlab thông qua trường đại học hoặc tổ chức khác.

Một trường hợp có thể được thực hiện cho cả hai, nhưng nếu mục tiêu chính của bạn là học cách viết mã trái ngược với việc học kỹ thuật cơ khí, thì Python là công cụ hữu ích hơn.

MATLAB là tốt cho các kỹ sư chủ yếu quan tâm đến việc sử dụng nó như một công cụ mã hóa đơn giản để thực hiện các tính toán kỹ thuật cổ điển. Do môi trường phát triển tích hợp và trình gỡ lỗi tích hợp tích hợp, nó giúp người không mã hóa dễ dàng viết logic thực thi. Thành thật mà nói khi bạn bắt đầu mã hóa, một trong những điều khó khăn nhất là nắm bắt được môi trường. Python có một đường cong học tập dốc hơn, đặc biệt là đối với những người chưa bao giờ mã hóa một dòng trước đây.

Tuy nhiên, Python cũng rất tốt cho người mới bắt đầu khi so sánh với hầu hết các ngôn ngữ lập trình. Trong bất kỳ cuộc khảo sát mã hóa nào, Python thường xuất hiện trên đầu là ngôn ngữ tốt nhất cho người mới bắt đầu học hỏi. Những lợi ích của Python bao gồm hàng tấn tài nguyên miễn phí để giúp bạn học hỏi; Ngữ pháp và cú pháp đơn giản đọc như tiếng Anh; và sự hài lòng nhanh chóng trong việc tạo ra chương trình chức năng đầu tiên của bạn, có thể xảy ra chỉ trong vài phút.

Cả Matlab và Python đều tốt cho người mới bắt đầu, nhưng Python tốt hơn nếu mã hóa hoặc khoa học máy tính là mục tiêu chính của bạn.

Nhận công việc phát triển phụ trợ bằng cách học CS

Tôi là một kỹ sư dịch vụ hiện trường và tôi muốn trở thành một nhà phát triển phụ trợ, nhưng công việc và gia đình giới hạn các lựa chọn của tôi. Kể từ khi hoàn thành bản nhạc khoa học máy tính tập trung vào phụ trợ trên boot.dev, giờ đây tôi có một lời mời làm việc trong tay và tôi đang bắt đầu sự nghiệp của mình với tư cách là một nhà phát triển phần mềm!

- Özgür Yildirim từ Đức

Python hay Matlab có hiệu quả hơn không?

Còn năng suất thì sao? Nếu bạn là một kỹ sư coi trọng hiệu quả đầu ra của họ, bạn có thể tự hỏi liệu Matlab hay Python có tốt hơn cho điều đó không.

Nếu bạn là một lập trình viên mới bắt đầu và bạn quan tâm đến năng suất, tôi sẽ giới thiệu Python. Cú pháp sạch rất dễ đọc và viết, điều đó có nghĩa là bạn có thể hoàn thành nhiều việc hơn.

Nó có thể là nếu bạn chuyên môn hơn trong thế giới kỹ thuật toán học và cổ điển mà Matlab có thể giúp bạn trở nên năng suất hơn. Nó đi kèm với một giao diện thực sự sạch và ký hiệu toán học quen thuộc. Điều đó nói rằng, ngay cả các lĩnh vực lập trình liền kề như kỹ thuật điện và cơ khí, mà Matlab đã thống trị trong lịch sử, đang tiến về phía Python. Thông thường, anh rể tôi đang học ngành kỹ thuật hóa học tại trường đại học cho biết toàn bộ khoa của anh ta đã chuyển lớp của họ từ Matlab sang Python.

Nếu bạn là người mới bắt đầu, Python sẽ giúp bạn làm việc hiệu quả hơn. Nếu bạn chuyên về thế giới điện toán kỹ thuật, giao diện gọn gàng Matlab sẽ tăng năng suất của bạn.

Python hay Matlab là tốt nhất cho một công việc lập trình?

Nhiều sinh viên lập trình mới chọn bàn phím vì họ muốn vào khoa học máy tính. Nếu đó là trường hợp của bạn, thì ở đó, chỉ có một câu trả lời tốt nhất giữa Matlab và Python: Python thường được coi là ngôn ngữ franca cho khoa học máy tính. Nếu bạn muốn có một công việc trong khoa học máy tính, hãy quét bất kỳ bài đăng công việc nào và bạn sẽ thấy hầu hết nếu không phải tất cả đều yêu cầu một số kiến ​​thức về Python. Hầu như không có bất kỳ đề cập đến Matlab là một lợi ích, chứ đừng nói đến một yêu cầu.

Thêm vào đó, Matlab chủ yếu được sử dụng trong các trường học và trường đại học. Điều này có nghĩa là nếu bạn muốn học Matlab một khi bạn đã rời trường, bạn sẽ thấy nó thực sự đắt tiền. Python, trong khi đó, có một loạt các khóa học và hướng dẫn rộng hơn nhiều có thể dạy bạn bất cứ nơi nào từ những điều cơ bản đến những thứ khá tiên tiến.

Python là không thể tin được tốt nhất để có được một công việc trong khoa học máy tính.

Cái nào xử lý hình ảnh tốt hơn, matlab hay python?

Xử lý hình ảnh là một phương pháp để trích xuất hoặc tăng cường hình ảnh. Mặc dù lần đầu tiên nó được sử dụng để tăng cường hình ảnh mặt trăng trong thập niên 60, nhưng ngày nay nó có phạm vi sử dụng rộng hơn nhiều, bao gồm điều chỉnh hình ảnh, bộ lọc truyền thông xã hội, công nghệ y tế, tầm nhìn máy tính và nhận dạng mẫu.

MATLAB thực sự giỏi trong việc thiết kế và điều chỉnh thuật toán. Nó cung cấp một loạt các hộp công cụ có thể giúp bạn xử lý hình ảnh. Hộp công cụ để xử lý hình ảnh trong MATLAB có nghĩa là bạn có thể sử dụng nó để phân đoạn, trích xuất và phân tích dữ liệu hình ảnh.

Python cung cấp nhiều gói bên ngoài để xử lý hình ảnh, như Numpy và Scipy. Tuy nhiên, AnalyticsInsight.net nhận thấy rằng trong khi cả Matlab và Python đều có thể tạo ra kết quả tương tự, MATLAB đều nhanh hơn.

Mặc dù Python xử lý xử lý hình ảnh tốt, MATLAB có các hộp công cụ gốc được thiết kế để xử lý hình ảnh và nó nhanh hơn.

Python hay Matlab là tốt nhất cho việc học máy?

Học máy làm cho Internet bạn sử dụng thân thiện hơn rất nhiều. Nó làm cho các truy vấn tìm kiếm Internet phù hợp hơn, nó giúp email gửi email lọc thư rác và nó cũng đóng một vai trò lớn trong các trang web bán cho bạn các đề xuất cá nhân hóa. Tôi đã viết bài viết này bằng cách sử dụng giọng nói đến văn bản, sử dụng học máy để tăng độ chính xác. Tất cả điều này để nói, ML nó có rất nhiều công dụng và tôi hy vọng nó sẽ chỉ có nhiều hơn khi thời gian trôi qua.

Phần này có một câu trả lời dễ dàng: Python là người chiến thắng trước Matlab. Python có hàng tấn thư viện và gói cho cả mô hình học máy trường học cũ và trường học mới. Thêm vào đó, Python là ngôn ngữ được sử dụng rộng rãi nhất cho nghiên cứu máy học hiện đại trong ngành công nghiệp và học viện. Manie Tadayon đã nói điều đó tốt nhất trong bài viết của mình:

Tiết [Học máy] là khu vực mà Python và R có lợi thế rõ ràng so với MATLAB.

MATLAB có thể được sử dụng để học máy. MATLAB có một bộ sưu tập lớn các thuật toán có thể cung cấp phản hồi trực quan ngay lập tức. Nhưng hãy nhớ rằng, những thuật toán đó là độc quyền. Có rất ít tính di động của mã. Mặc dù nó dễ dàng hơn để bắt đầu với việc học máy, nhưng nó không thực sự có tương lai trừ khi bạn chỉ làm việc với những người khác sử dụng MATLAB.

MATLAB có thể được sử dụng để học máy, nhưng Python vừa tốt hơn và di động hơn.

Học phát triển phụ trợ theo cách đúng đắn

Kỹ năng khoa học máy tính sẽ giúp bạn phỏng vấn. Một danh mục đầu tư của các dự án sẽ giúp bạn được thuê.

Matlab hay Python là tốt nhất cho khoa học dữ liệu?

Khoa học dữ liệu là một lĩnh vực rộng lớn đến nỗi bạn có thể tìm thấy những lập luận thuyết phục cho Python là tốt nhất, hoặc Matlab là tốt nhất, hoặc cả hai đều khủng khiếp. Ngay cả phần này có thể là bài viết riêng của nó bởi vì một lần nữa, nó phụ thuộc vào những gì bạn muốn làm với khoa học dữ liệu.

Ví dụ, bài viết này cho bạn biết rằng Python có một đường cong học tập thực sự dốc. Matlab, bằng cách so sánh, tốt hơn cho các nhà khoa học dữ liệu non trẻ. Một lần nữa, nó phụ thuộc vào những gì bạn muốn làm với các sản phẩm khoa học dữ liệu bạn sản xuất. Bạn có muốn cho họ xem người khác không? Bạn đã thắng được có thể làm điều đó với Matlab. Nó cũng không thực sự giải thích làm thế nào bạn có thể truy cập vào MATLAB nếu bạn không phải là một phần của trường đại học. Hãy nhớ rằng, giấy phép độc quyền là đắt tiền.

Nếu bạn hiện đang đi học ở một nơi nào đó mà bạn có quyền truy cập vào Matlab và bạn chỉ muốn bị ướt chân với các khái niệm khoa học dữ liệu, tôi có thể thấy Matlab sẽ là một lựa chọn tuyệt vời cho bạn như thế nào. Tuy nhiên, nếu, giống như nhiều nhà khoa học dữ liệu trong tương lai, bạn thấy mình muốn học khoa học dữ liệu sau khi bạn rời trường, lựa chọn thực sự duy nhất là Python. Và nó là một lựa chọn tuyệt vời!

Python tương đối dễ dàng để người mới bắt đầu học hỏi. Nó có nguồn mở, có nghĩa là có một loạt các hướng dẫn và ví dụ phong phú mà người khác đã tạo ra để bạn đi qua. Có rất nhiều dự án Python cho người mới bắt đầu bạn có thể làm nếu bạn thực sự muốn đầu tư vào việc học một ngôn ngữ. Cộng đồng rất đa dạng và rất đa dạng. Khi chọn Python vs Matlab để phân tích dữ liệu, Python sẽ thắng.

Mặc dù có thể khó khăn hơn để chọn Matlab, tôi vẫn coi Python là một lựa chọn tuyệt vời cho khoa học dữ liệu.

Matlab so với Python: Cái nào tốt nhất cho việc học sâu?

Học sâu được coi là một sự tiến hóa của học máy. Theo bài đăng trên blog hữu ích của Zendesk, Deep Learning sử dụng mạng thần kinh lập trình cho phép các máy đưa ra quyết định chính xác mà không cần sự giúp đỡ từ con người. Bạn có thể coi đó là một trường con của học máy. Về mặt lý thuyết, các mô hình học tập sâu sẽ có thể tự xác định nếu dự đoán là chính xác. Học máy đòi hỏi nhiều hướng dẫn của con người.

Đó là một phần lý do tôi coi Python là lựa chọn tốt nhất cho việc học sâu. Bởi vì Matlab là độc quyền, nó có nghĩa là những đổi mới chậm hơn. Python là nguồn mở, có nghĩa là bất kỳ ai cũng có thể tạo ra các gói được cộng đồng Pythonista áp dụng rộng rãi. Các gói như pytorch, tenorflow, caffe, v.v. được sử dụng rộng rãi để học sâu. Nếu bạn có một cái nhìn về hầu hết các khóa học trực tuyến học tập sâu, tất cả đều có Python.

Tóm lại, Python tốt hơn Matlab cho học tập sâu.

Matlab so với Python: Cái nào tốt nhất cho tốc độ?

Tôi đã ám chỉ điều này ở trên, nhưng Matlab thực sự rất nhanh. Có một vài chức năng được biết là làm chậm MATLAB, như

xVec=[   
49.7030   78.9590
42.6730   11.1390
23.2790   89.6720
75.6050   25.5890
81.5820   53.2920
44.9680    2.7770
38.7890   78.9050
39.1570   33.6790
33.2640   54.7200
4.8060   44.3660
49.7030   78.9590
42.6730   11.1390
23.2790   89.6720
75.6050   25.5890
81.5820   53.2920
44.9680    2.7770
38.7890   78.9050
39.1570   33.6790
33.2640   54.7200
4.8060   44.3660
];
N=size(xVec,1);
kex1=ExampleKernel1;
tic
for i=1:300
    K=kex1.kernel_2D(N,xVec,N,xVec);
end
toc
9, nhưng miễn là mã của bạn tránh được các chức năng đó, MATLAB nhanh hơn không thể chịu đựng được so với Python.

Tuy nhiên, điều đáng chú ý là Python so sánh thuận lợi với MATLAB với khả năng sử dụng hơn 12 lõi xử lý khi chạy song song. Tôi yêu Rob Hicks, viết về câu hỏi mà anh ấy đã điều hành các vấn đề kinh tế lượng tốn nhiều thời gian ở Python và Matlab. Anh ấy đã viết tất cả các mã, vì vậy bạn có thể tự kiểm tra nó.

Matlab nhanh hơn Python, nhưng Python tốt hơn trong việc điều hành nhiều công việc song song.

Matlab so với Python: Cái nào tốt nhất cho tương lai?

Ngôn ngữ lập trình đến và đi như lãng mạn tuổi teen. Ngay cả những người dường như vĩnh viễn cũng có thể bắt đầu mất đi, và những người mới đến thách thức các ngôn ngữ hiện có mọi lúc. Mặc dù thực tế là điều này khiến các ngôn ngữ học tập phức tạp hơn, bởi vì bạn không bao giờ biết nếu dành 5 năm học gỉ là một ý tưởng tốt hay không, tôi nghĩ đó là một điều tốt. Đổi mới, đặc biệt là trong các lĩnh vực như khoa học máy tính và khoa học dữ liệu, là hoàn toàn quan trọng cho sự tiến bộ. Nếu một ngôn ngữ xuất hiện có thể làm điều gì đó tốt hơn Python, mặc dù tôi yêu Python, tôi vẫn sẽ rất vui khi thấy điều đó.

Đó là lý do tại sao việc xem xét một ngôn ngữ của một ngôn ngữ trong tương lai là thực sự quan trọng đối với tôi. Trong khi Matlab đã tồn tại lâu hơn, tôi khiêm tốn tin rằng các ngôn ngữ nguồn mở là tương lai. Các ngôn ngữ và giao diện được trả lương đã giành chiến thắng khi khoa học dữ liệu và khoa học máy tính trở nên dân chủ hóa hơn. Chúng tôi thấy điều này trong việc tăng tốc của các ứng dụng cho Python - Matlab chỉ có thể theo kịp vì nó không phải là nguồn mở.

Python đã chứng minh khả năng vượt qua rất nhiều trở ngại, bao gồm cả Python 2 đến Python 3 Fiasco, việc nghỉ hưu của nhà độc tài nhân từ của nó cho cuộc sống và sự trỗi dậy của các ngôn ngữ hợp thời thách đã thách thức ngai vàng của nó. Matlab, trong khi đó, có ảnh hưởng suy yếu ngay cả trong các khu vực mà nó từng thống trị như giới học thuật.

Lớp học đại học của tôi là năm đầu tiên được dạy về Matlab vì các giáo sư của chúng tôi tin rằng đó là một ngôn ngữ hữu ích hơn. Và khi tôi muốn học một ngôn ngữ mới, tôi không thể chọn Matlab vì tôi không thể đủ khả năng. Python là một lựa chọn tự nhiên **. **

Python ở đây để ở lại. MATLAB sẽ chỉ trở nên ít liên quan hơn.

Matlab so với Python: Cái nào tốt nhất cho hầu hết mọi người?

Tôi thường cố gắng tránh quá quyết đoán trong các loại bài viết này, bởi vì sự thật hiếm khi là một ngôn ngữ tốt nhất so với một ngôn ngữ khác. Nhưng tôi tin rằng đây là một trong số ít trường hợp một ngôn ngữ rõ ràng vượt trội so với ngôn ngữ khác vì nhiều lý do. MATLAB có một vài ứng dụng hữu ích làm cho nó trở thành một lựa chọn tốt cho một nhóm người rất hẹp. Python, trong khi đó, chỉ phát triển hữu ích hơn cho nhiều người hơn. Chỉ có nhiều hướng dẫn hơn và nhiều hướng dẫn hơn để tìm hiểu nó và sử dụng nó.

Tôi không nói rằng bạn không nên học Matlab nếu bạn có cơ hội. . Khi nói đến việc lựa chọn giữa Matlab so với Python, Python sẽ thắng.