2015-07-24 27 views
8

Nếu tôi có nhiều sổ tay IPython chạy trên cùng một máy chủ. Có cách nào để chia sẻ dữ liệu giữa chúng không? Ví dụ: nhập biến từ một sổ ghi chép khác? Cảm ơn!Chia sẻ dữ liệu giữa các Sổ tay IPython

+0

Mã chạy mỗi máy tính xách tay là quá trình riêng của mình, vì vậy họ không thể chia sẻ các biến. Bạn sẽ cần phải serialise chúng trong một số hình thức này hay cách khác để chuyển chúng giữa các máy tính xách tay. Cách tốt nhất để làm điều này phụ thuộc vào dữ liệu của bạn, nhưng CSV hoặc JSON là hai định dạng phổ biến. 'Pickle' có thể lưu hầu hết các biến Python, nhưng nếu bạn cũng muốn lưu trữ dữ liệu của bạn, nó không được khuyến khích, bởi vì nó phụ thuộc vào phiên bản Python cụ thể mà bạn đang sử dụng. –

Trả lời

0

Tôi tin rằng về lý thuyết bạn có thể làm như vậy với messaging, mặc dù tôi sẽ phải đào sâu hơn rất nhiều để tìm ra.

Tại sao bạn sẽ cần khả năng này?

+0

Nhắn tin có vẻ như nó có khả năng hoạt động. Về cơ bản, tôi đang đứng lên một máy chủ cho một nhóm người để làm một số phân tích dữ liệu với một gói mà tôi đang viết. Mỗi máy tính xách tay đang thực hiện một phân tích cụ thể và có thể khá dài và có liên quan. Đôi khi, một số dữ liệu sẽ cần phải được chia sẻ giữa sổ ghi chép và không có cách nào để thực sự dự đoán dữ liệu nào cần được chia sẻ. Điều đó có ý nghĩa? –

1

Nếu dữ liệu của bạn nằm trong một biến duy nhất thì hãy thử lưu nó vào một tệp bằng cách sử dụng ma thuật %save trong một sổ ghi chép và sau đó đọc nó lại trong một sổ ghi chép khác.

Khó khăn duy nhất là tệp văn bản sẽ chứa dữ liệu nhưng không có định nghĩa biến vì vậy tôi thường liên kết nó với định nghĩa biến và sau đó kết quả là exec.

+0

Chắc chắn là một giải pháp khả thi. Có cách nào để làm điều đó mà không sửa đổi sổ ghi chép với biến tôi muốn không? Vì vậy, về cơ bản làm cho phạm vi biến của một máy tính xách tay giống như một máy tính khác - cho phép máy tính xách tay 1 truy cập vào các biến của máy tính xách tay 2, mà không phải sửa đổi sổ ghi chép 2 ở tất cả? –

+0

Điều này không "chia sẻ dữ liệu" nhưng viết các đầu vào IPython trước đó vào một tệp văn bản. Giải pháp '% store' từ blue-sky lưu và đọc lại dữ liệu giữa các sổ ghi chép (và các phiên, cho vấn đề đó). – EOL

7

này làm việc cho tôi:

Các lệnh% cửa hàng cho phép bạn vượt qua biến giữa hai máy tính xách tay khác nhau.

data = 'này là chuỗi Tôi muốn vượt qua máy tính xách tay khác nhau' % lưu trữ dữ liệu

Bây giờ, trong một máy tính xách tay ...% cửa hàng mới -r in dữ liệu (data) đây là chuỗi Tôi muốn để vượt qua để máy tính xách tay khác nhau

tôi đã thử nghiệm thành công với sklearn bộ dữ liệu:

from sklearn import datasets 

dataset = datasets.load_iris() 

%store dataset 

trong máy tính xách tay để đọc dữ liệu:

%store -r dataset 

src: https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

+0

Để biết thêm thông tin: '% store? 'Trong IPython. – EOL

Các vấn đề liên quan