- 참고
- 이 기능은 현재 베타 상태입니다.
소개
슬롯 커뮤니티 Jupyter 노트북을 사용하면 슬롯 커뮤니티와 함께 노트북 기술을 사용할 수 있습니다. 슬롯 커뮤니티를 배우고 싶다면 아마도 더 좋은 방법이 있을 것입니다. 노트북을 사용하면 슬롯 커뮤니티와 Python을 결합할 수 있습니다. 전자는 잘 구조화된 데이터 및 최적화 모델과 잘 작동하는 반면, 후자는 모든 종류의 방식으로 제공되는 데이터를 검색, 조작 및 시각화하는 기능이 매우 풍부합니다. 슬롯 커뮤니티와 Python을 노트북에 결합하면 텍스트, 데이터, 그래프, 수학, 모델을 통해 최적화 스토리를 전달하는 것이 상대적으로 쉽습니다.
시작하기
슬롯 커뮤니티 Jupyter 노트북을 시작하는 첫 번째 단계는 Python 3 설치가 다음에 설명된 슬롯 커뮤니티 Python API를 인식하도록 하는 것입니다.시작하기22440_22673미니콘다파이썬 배포판.
- 주의
- 사용자가 선택 사항을 제공하면 모든 핵심 타사 종속성이 설치됩니다.
핍구문(pip install gamsapi[magic]).
슬롯 커뮤니티 Python API 컬렉션(및 핵심)에 추가로마법종속성), 다음 위치에 있는 예시[슬롯 커뮤니티 경로]/api/python/examples/magic추가 패키지가 필요합니다:jupyterlab, matplotlib및표로 작성. 다음 코드 섹션에서는콘다슬롯 커뮤니티 Jupyter 노트북 환경:
노트북Millco.ipynb그리고소개.ipynb위치api/python/예제/매직Jupyter Notebook 및 슬롯 커뮤니티에 익숙해지기 위한 좋은 시작점입니다. 이 섹션의 나머지 부분에서는 다음과 같은 대화 상자를 제공합니다.소개.ipynb노트북. 다른 노트북 예시도 참조하세요.
튜토리얼
슬롯 커뮤니티 Jupyter 노트북¶
슬롯 커뮤니티 Jupyter 노트북을 사용하면 슬롯 커뮤니티와 함께 노트북 기술을 사용할 수 있습니다. 당신이그냥슬롯 커뮤니티를 배우고 싶다면 아마도 더 나은 방법이 있을 것입니다. 노트북을 사용하면 슬롯 커뮤니티와 Python을 결합할 수 있습니다. 전자는 잘 구조화된 데이터 및 최적화 모델과 잘 작동하는 반면, 후자는 모든 종류의 방식으로 제공되는 데이터를 검색, 조작 및 시각화하는 기능이 매우 풍부합니다. 노트북에 슬롯 커뮤니티와 Python을 결합하면 최적화를 비교적 쉽게 알 수 있습니다.스토리텍스트, 데이터, 그래프, 수학 및 모델이 포함됩니다.
슬롯 커뮤니티 Jupyter Notebook은 Python 3 커널 위에 구축됩니다. 따라서 기본적으로 노트북 셀은 Python 셀입니다. 셀은 Jupyter 매직 기능을 사용하여 슬롯 커뮤니티 셀, 즉 슬롯 커뮤니티 구문이 있는 셀로 변환될 수 있습니다(셀의 첫 번째 줄은%%슬롯 커뮤니티). 슬롯 커뮤니티 매직 명령을 사용하면 Python Jupyter 노트북에서 슬롯 커뮤니티 지원이 가능합니다. 슬롯 커뮤니티 코드를 실행하는 것 외에도 슬롯 커뮤니티와 Python 간에 데이터를 전송할 수 있습니다. 슬롯 커뮤니티 매직 명령을 활성화하려면 확장 프로그램을 (다시)로드해야 합니다.슬롯 커뮤니티magic:
%reload_ext슬롯 커뮤니티magic슬롯 커뮤니티 코드 실행 중¶
슬롯 커뮤니티 코드 실행은 다음 중 하나를 사용하여 수행할 수 있습니다.%슬롯 커뮤니티(라인 매직) 또는%%슬롯 커뮤니티(세포 마법). 동안%슬롯 커뮤니티슬롯 커뮤니티 코드 한 줄을 실행하는 데 사용할 수 있습니다.%%슬롯 커뮤니티전체 셀을 슬롯 커뮤니티 셀로 만듭니다. 동안%슬롯 커뮤니티어떤 줄에도 나타날 수 있습니다.%%슬롯 커뮤니티셀의 첫 번째 줄에서만 유효합니다.
%게임설정 i(*);Jupyter 노트북에서 슬롯 커뮤니티 실행과 관련된 몇 가지 유용한 명령이 있습니다. Pandas 데이터 프레임에 대한 일부 변환 함수(예:from2dim(아래 참조))는를 통해 사용할 수 있습니다.게임다음 직후에 사용할 수 있는 인스턴스%reload_ext 슬롯 커뮤니티magic.
%%게임set j(*);
매개변수 p(i,j);
매개변수 p2(i,j);슬롯 커뮤니티 컴파일러와 실행 시스템이 조정되어 선언이나 방정식 정의가 포함된 경우에도 슬롯 커뮤니티 셀을 여러 번 실행할 수 있습니다. 이는 일반적으로 슬롯 커뮤니티 시스템에서는 불가능합니다. 다음 두 셀의 실행은 셀의 실행, 수정 및 재실행을 모방하는 문제를 일으키지 않습니다.
%%게임set i / 피터,폴,메리 /, j / A,B,C /;
매개변수 p2(i,j) / set.i.set.j 1 /;%%게임set i / i1*i5 /, j /j1*j5 /;
매개변수 p2(i,j) / set.i.set.j 1 /;슬롯 커뮤니티 셀의 출력은 볼 수 없습니다(셀에서 해결이 실행되지 않는 한, 아래 참조). 모든 출력은 로그 및 lst 파일로 이동됩니다. 정말로 이것을 보고 싶다면 마법 명령을 사용할 수 있습니다.%gams_log그리고%gams_lst가장 최근 슬롯 커뮤니티 실행의 로그 내용과 목록 파일을 표시합니다. 다음 셀에는 마지막으로 실행된 슬롯 커뮤니티 셀 또는 라인 매직의 목록 파일 내용이 표시됩니다.-e실행과 관련된 목록 파일의 섹션만 표시합니다:
%게임디스플레이 p2;%gams_lst-e실행
---- 35 매개변수 p2
j1 j2 j3 j4 j5
i1 1.000 1.000 1.000 1.000 1.000
i2 1.000 1.000 1.000 1.000 1.000
i3 1.000 1.000 1.000 1.000 1.000
i4 1.000 1.000 1.000 1.000 1.000
i5 1.000 1.000 1.000 1.000 1.000
슬롯 커뮤니티 셀의 실행, 수정, 재실행에는 제한이 있습니다. 기호의 유형이나 차원이 변경되면 노트북을 처음부터 실행하고 다음을 통해 전체 슬롯 커뮤니티 데이터베이스를 재설정해야 합니다.%gams_reset. 예를 들어 매개변수를 선언했으므로p2이미 끝났습니다(i,j)우리는 마음을 바꾸고 다시 선언할 수 없습니다.p2as매개변수 p2(i,i,j):
%게임 매개변수 p2(i,i,j);
이렇게 하면 컴파일 오류가 발생하고 셀 실행 시 예외가 발생합니다(그러려면 다음 셀의 주석 처리를 해제하세요):
#%슬롯 커뮤니티 매개변수 p2(i,i,j);
%gams_reset
와 함께%gams_reset슬롯 커뮤니티 데이터베이스를 재설정하고 다른 유형과 도메인/차원으로 기호를 선언할 수 있습니다. 슬롯 커뮤니티 데이터베이스의 다른 모든 항목도 사라졌습니다. 따라서 집합 i와 j도 다시 선언해야 합니다. 게다가%gams_reset선택적 인수 제공--system_directory=<경로/to/슬롯 커뮤니티>자동 감지를 원하지 않는 경우 슬롯 커뮤니티 시스템 디렉토리를 명시적으로 지정할 수 있습니다. 시스템 디렉터리가 지정되면 모두%gams_reset그리고슬롯 커뮤니티reset()호출은 이를 고려합니다. 활성 환경 이외의 기존 환경은 자동으로 영향을 받지 않습니다. 그러므로 a%gams_reset직후%reload_ext 슬롯 커뮤니티magic은 모든 후속 환경에 대해 기본이 아닌 시스템 디렉터리를 지정하는 데 유용합니다. 빈 문자열을 시스템 디렉터리()로 제공하여 기본 동작으로 다시 전환할 수 있습니다.%gams_reset --system_directory=). 슬롯 커뮤니티 데이터베이스의 상태는 디렉토리를 쉽게 복잡하게 만들 수 있는 다양한 파일에 보관됩니다.%gams_cleanup호출은 현재 환경의 임시 파일 디렉터리를 정리하는 데 도움이 됩니다. 옵션-k가장 최근의 슬롯 커뮤니티 데이터베이스를 유지하므로%gams_cleanup -k노트북 어디든 저장 호출입니다. 옵션-a노트북의 다른 환경에서도 파일을 제거합니다. 이 옵션은 다음과 결합될 수 있습니다.-k. 옵션-c또는--폐쇄완전히 정리하고 새로운 내용을 남깁니다.베이스환경 전용.
Python과 슬롯 커뮤니티 간 데이터 교환¶
재산슬롯 커뮤니티exchange_container참조 a슬롯 커뮤니티 전송Python과 슬롯 커뮤니티 간의 데이터 교환을 구성하는 컨테이너입니다. 다음에서 생성된 기호슬롯 커뮤니티exchange_container슬롯 커뮤니티에서 사용할 수 있으며 슬롯 커뮤니티에 선언된 기호는 다음에서 사용할 수 있습니다.슬롯 커뮤니티exchange_container:
가져오기 numpy as np
m = 게임.exchange_container
i = m.추가세트('나', 기록=["i1","i2","i3"])
j = m.추가세트('j', 기록=["j1","j2"])
p = m.addParameter('p', [i,j], 기록=np.배열([[1.1,2.2],
[3.3,4.4],
[5.5,6.6]]))
%게임i, j, p 표시;%gams_lst-e실행
---- 13개 세트
i1, i2, i3
---- 13개 세트
j1, j2
---- 13 매개변수 p
j1 j2
i1 1.100 2.200
i2 3.300 4.400
i3 5.500 6.600
다음 셀은 기호를 선언합니다.pp슬롯 커뮤니티에서 병렬 값을 곱함pby 2. 두 번째 줄은 다시 데이터 프레임을 표시하는 Python 코드입니다.pp기호 메소드 사용<기호>.pivot().
%게임매개변수 pp(i,j); pp(i,j) = 2*p(i,j)m['pp'].피벗()
| j1 | j2 | |
|---|---|---|
| i1 | 2.2 | 4.4 |
| i2 | 6.6 | 8.8 |
| i3 | 11.0 | 13.2 |
슬롯 커뮤니티 전송이 데이터를 저장하기 위해 사용하는 데이터 프레임은 매우 구체적인 레이아웃을 가지고 있습니다.setRecords방법 또는기록=49009_49131슬롯 커뮤니티 이전 문서자세한 내용은.
슬롯 커뮤니티 라인 또는 셀 매직은 다음의 기호만 동기화합니다.슬롯 커뮤니티exchange_container이전의 슬롯 커뮤니티에다음에 작성됨마지막 슬롯 커뮤니티 라인 또는 셀 매직 실행 이후. 슬롯 커뮤니티 매직은 전송 속성을 사용합니다.수정됨기호를 슬롯 커뮤니티와 동기화해야 하는지 결정하기 위해. 예외적인 상황에서는 다음의 설정이 적용됩니다.슬롯 커뮤니티write_all = 참이 논리 및 업데이트를 우회모두기호슬롯 커뮤니티exchange_container슬롯 커뮤니티에서. 비슷한 방식으로 새롭거나 기존에 있었던 기호만다음에 할당됨, 명시적 또는 암시적(예: a를 통해)해결49889_49933슬롯 커뮤니티exchange_container. 몇 가지 예외를 제외하고는 다음과 같습니다.암시적 로드실행 시간 임베디드 코드 섹션 및execute_loadpoint "file.gdx";the참조50215_50338슬롯 커뮤니티read_all = 참이 논리 및 업데이트를 우회모두슬롯 커뮤니티의 기호슬롯 커뮤니티exchange_container.
다음을 통해 컨테이너에서 개별 기호를 제거할 수 있지만m.removeSymbols('i'), 제거된 기호가 다른 기호의 도메인으로 사용되는 경우 컨테이너가 불안정한 상태가 될 수 있습니다. 슬롯 커뮤니티 전송 컨테이너에 기호를 추가하는 기호 생성자m, 예:i = 슬롯 커뮤니티transfer.Set(m, 'i')또는 해당 컨테이너 메소드(m.addSet('i'))는 이미 존재하는 기호에 대해 반복될 수 있지만 제한이 있습니다. 반복되는 슬롯 커뮤니티 선언과 유사하게 기호의 구조(예: 차원 또는 도메인)를 변경하지 않는 한 계속 작동합니다. 기호에 대한 변경이 필요한 경우 먼저 기호를 삭제하거나(다른 기호에서 도메인 집합으로 사용되는 집합에 특별한 주의가 필요함) 다음을 실행하여 새로운 교환 컨테이너로 시작해야 합니다.슬롯 커뮤니티reset()또는%gams_reset. 안타깝게도 이전 셀에서 생성된 기호와 데이터도 다음 셀에서 사라집니다.슬롯 커뮤니티reset().
일부 데이터 변환 루틴¶
from2dim¶
이것은 데이터 프레임을 이와 같이 변환합니다
| 색인 | 밀 A | 밀 B | 밀 C |
|---|---|---|---|
| 1 | 8 | 15 | 50 |
| 2 | 10 | 17 | 20 |
| 3 | 30 | 26 | 15 |
슬롯 커뮤니티 판독 가능 형식의 데이터 프레임으로
| 색인 | level_0 | 레벨_1 | 0 |
|---|---|---|---|
| 0 | 1 | 밀 A | 8 |
| 1 | 1 | 밀 B | 15 |
| 2 | 1 | 밀 C | 50 |
| 3 | 2 | 밀 A | 10 |
| 4 | 2 | 밀 B | 17 |
| 5 | 2 | 밀 C | 20 |
| 6 | 3 | 밀 A | 30 |
| 7 | 3 | 밀 B | 26 |
| 8 | 3 | 밀 C | 15 |
전화:슬롯 커뮤니티from2dim(df)
추가 인수를 사용하면 기본 열 이름을 바꿀 수 있습니다:
| 색인 | 사이트 | 밀스 | 값 |
|---|---|---|---|
| 0 | 1 | 밀 A | 8 |
| 1 | 1 | 밀 B | 15 |
| 2 | 1 | 밀 C | 50 |
| 3 | 2 | 밀 A | 10 |
| 4 | 2 | 밀 B | 17 |
| 5 | 2 | 밀 C | 20 |
| 6 | 3 | 밀 A | 30 |
| 7 | 3 | 밀 B | 26 |
| 8 | 3 | 밀 C | 15 |
전화:슬롯 커뮤니티from2dim(df,['sites','mills','value'])
다음 셀은 몇 가지 예를 보여줍니다:
가져오기 판다 as pd
사이트 = ['1', '2', '3']
밀스 = ['밀 A','밀 B', '밀 C']
거리 = pd.데이터프레임(색인=사이트, 열=밀스, 데이터 = [[ 8, 15, 50],
[10, 17, 20],
[30, 26, 15]])
디스플레이(거리)
디스플레이(게임.from2dim(거리,['사이트','제분소','값']))
| 밀 A | 밀 B | 밀 C | |
|---|---|---|---|
| 1 | 8 | 15 | 50 |
| 2 | 10 | 17 | 20 |
| 3 | 30 | 26 | 15 |
| 사이트 | 밀스 | 값 | |
|---|---|---|---|
| 0 | 1 | 밀 A | 8 |
| 1 | 1 | 밀 B | 15 |
| 2 | 1 | 밀 C | 50 |
| 3 | 2 | 밀 A | 10 |
| 4 | 2 | 밀 B | 17 |
| 5 | 2 | 밀 C | 20 |
| 6 | 3 | 밀 A | 30 |
| 7 | 3 | 밀 B | 26 |
| 8 | 3 | 밀 C | 15 |
게임.리셋() # 아래에서 다른 i와 j를 사용할 것이므로 재설정하는 것이 좋습니다.
m = 게임.exchange_container
dist = m.addParameter('거리', ['사이트','밀스'])
거리.setRecords(게임.from2dim(거리))
거리.기록
| 레벨_0 | 레벨_1 | 값 | |
|---|---|---|---|
| 0 | 1 | 밀 A | 8.0 |
| 1 | 1 | 밀 B | 15.0 |
| 2 | 1 | 밀 C | 50.0 |
| 3 | 2 | 밀 A | 10.0 |
| 4 | 2 | 밀 B | 17.0 |
| 5 | 2 | 밀 C | 20.0 |
| 6 | 3 | 밀 A | 30.0 |
| 7 | 3 | 밀 B | 26.0 |
| 8 | 3 | 밀 C | 15.0 |
# 이제 전송 데이터 프레임을 테이블로 표시
dist.피벗()
| 밀 A | 밀 B | 밀 C | |
|---|---|---|---|
| 1 | 8.0 | 15.0 | 50.0 |
| 2 | 10.0 | 17.0 | 20.0 |
| 3 | 30.0 | 26.0 | 15.0 |
# 3개 이상의 차원 기호에 대해 우리는 얻습니다.
%게임a / a1*a3 /, b /b1*b2 /, c /c1*c5 / 설정; 매개변수 abc(a,b,c); abc(a,b,c) = 균일(0,1)m["abc"].피벗()
| c1 | c2 | c3 | c4 | c5 | ||
|---|---|---|---|---|---|---|
| a1 | b1 | 0.171747 | 0.843267 | 0.550375 | 0.301138 | 0.292212 |
| b2 | 0.224053 | 0.349831 | 0.856270 | 0.067114 | 0.500211 | |
| a2 | b1 | 0.998118 | 0.578733 | 0.991133 | 0.762250 | 0.130692 |
| b2 | 0.639719 | 0.159518 | 0.250081 | 0.668929 | 0.435356 | |
| a3 | b1 | 0.359700 | 0.351441 | 0.131492 | 0.150102 | 0.589114 |
| b2 | 0.830893 | 0.230816 | 0.665734 | 0.775858 | 0.303658 |
# 2차원 변수의 레벨 값(기본값)을 표시하는데도 작동
%게임set i /i1*i5/, j / j1*j3 /; 변수 선박(i,j); ship.l(i,j) = 유니폼(0,1);m["배"].피벗()
| j1 | j2 | j3 | |
|---|---|---|---|
| i1 | 0.110492 | 0.502385 | 0.160173 |
| i2 | 0.872462 | 0.265115 | 0.285814 |
| i3 | 0.593956 | 0.722719 | 0.628249 |
| i4 | 0.463798 | 0.413307 | 0.117695 |
| i5 | 0.314212 | 0.046552 | 0.338550 |
# 한계값도 피벗할 수 있습니다.
%게임ship.m(i,j) = 유니폼(0,1);m["배"].피벗(값="한계")
| j1 | j2 | j3 | |
|---|---|---|---|
| i1 | 0.182100 | 0.645727 | 0.560746 |
| i2 | 0.769962 | 0.297806 | 0.661106 |
| i3 | 0.755822 | 0.627447 | 0.283864 |
| i4 | 0.086425 | 0.102515 | 0.641251 |
| i5 | 0.545309 | 0.031525 | 0.792361 |
슬롯 커뮤니티 환경¶
슬롯 커뮤니티 라인과 셀의 실행은 특정에서 발생합니다.환경. 노트북 시작 부분에는 환경이 존재하지 않지만,베이스환경은 필요할 때마다 자동으로 생성됩니다. 어떤 상황에서는 둘 이상의 슬롯 커뮤니티 환경을 갖는 것이 유용할 수 있습니다. 서로 다른 기호에 대해 동일한 이름을 가진 두 가지 모델이 있습니다. Python 셀에서는 다음을 수행할 수 있습니다.생성및/또는활성화슬롯 커뮤니티 셀이 이 환경에서 실행되도록 하는 슬롯 커뮤니티 환경입니다. 특정 슬롯 커뮤니티 전송교환 컨테이너또한 환경의 일부입니다. 환경은 다음으로 식별됩니다.이름. 이 이름은 슬롯 커뮤니티 셀과 라인을 실행하여 생성된 스크래치 파일의 일부이기도 합니다.gj_e6aff890_base_cp.g00. 이름은 공통 시작으로 구성됩니다.gj_(슬롯 커뮤니티 Jupyter의 경우), 고유 IDje6aff890다음 경우에 할당됩니다.게임개체는 인스턴스화되며 노트북마다 다릅니다. 다음 부분_base_이 파일이 속한 환경의 이름을 포함합니다._cp및 확장 프로그램.g00이 파일을 슬롯 커뮤니티 가상 머신의 상태를 캡처하는 파일로 식별하십시오.
다음 예는 환경 사용을 보여줍니다.
게임.활성
'기본'
게임.재설정() # 기본 환경 재설정
%게임매개변수 p / i1.i2 3 /;게임.exchange_container['p'].기록
| uni_0 | uni_1 | 값 | |
|---|---|---|---|
| 0 | i1 | i2 | 3.0 |
# 1차원 변수 p를 포함하는 새로운 환경 "new"를 생성합니다.
게임.생성("새로운") # create에는 선택적 인수 activate=boolean(기본값은 "True")이 있습니다.
인쇄(f'활성 환경:{게임.활성}') # 따라서 활성 환경이 "새"임을 알 수 있습니다.
%게임변수 p(*) / i1.L 3, i1.M 2 /;게임.exchange_container['p'].기록
활성 환경: 신규
| 유니 | 레벨 | 한계 | 하위 | 상위 | 규모 | |
|---|---|---|---|---|---|---|
| 0 | i1 | 3.0 | 2.0 | -inf | inf | 1.0 |
게임.활성화('베이스') # 이를 통해 "기본" 환경으로 다시 전환할 수 있습니다
인쇄(f'활성 환경:{게임.활성}') # 따라서 활성 환경이 "새"임을 알 수 있습니다.
게임.exchange_container['p'].기록 # 2차원 매개변수 p 포함
활성 환경: 기본
| uni_0 | uni_1 | 값 | |
|---|---|---|---|
| 0 | i1 | i2 | 3.0 |
문제해결 및 힌트¶
- 노트북 경로에는 공백이 포함되어서는 안 됩니다. 노트북 파일 자체(*.ipynb)가 가능합니다.
- 슬롯 커뮤니티 코드를 실행하는 동안 오류가 발생하면(노트북 예외는 GamsExecption임) 다음을 사용하여 목록 파일(*.lst)을 검사하는 것이 유용할 수 있습니다.
%cat 경로/to/listing.lst또는%gams_lst. 목록 파일의 경로는 실패한 셀 출력의 마지막 줄에서 찾을 수 있습니다.
%gams_cleanup--폐쇄슬롯 커뮤니티 Jupyter 노트북을 Python 스크립트로 변환
때로는 독립형 Python 스크립트에서 슬롯 커뮤니티 Jupyter 노트북의 로직을 실행하는 것이 유용할 수 있습니다. 이는 다음을 사용하여 달성할 수 있습니다.슬롯 커뮤니티magic.GamsInteractive백엔드 로직을 구현하는 클래스슬롯 커뮤니티magic둘 다 필요하지 않습니다.IPythonnor주피터. 슬롯 커뮤니티 마법 명령을 Python 메서드로 변환하는 것은 매우 간단합니다. 첫째, Python에 해당하는%reload_ext 슬롯 커뮤니티magicPython 스크립트의 시작 부분에 추가해야 합니다:
나중에 슬롯 커뮤니티 Jupyter 노트북에서 사용할 수 있는 각 마법 명령이나 방법은 다음과 같습니다.GamsInteractive동일한 이름을 가지고 있습니다. 다음과 같은 슬롯 커뮤니티 마법 명령%슬롯 커뮤니티또는%gams_reset정확히 동일한 이름의 메소드로 번역될 수 있습니다 - 이 경우GamsInteractive.슬롯 커뮤니티()그리고GamsInteractive.gams_reset(). 다음과 같은 Jupyter 노트북에서 (슬롯 커뮤니티 매직 명령 없이) 직접 액세스되는 메서드 및 속성슬롯 커뮤니티exchange_container또는슬롯 커뮤니티activate()내부에서도 똑같은 방식으로 사용할 수 있습니다GamsInteractive. 슬롯 커뮤니티 매직 명령의 옵션 및 매개변수는 동등한 메소드의 해당 인수와 함께 사용될 수 있습니다.
슬롯 커뮤니티 마법 명령은 매우 쉽게 번역될 수 있지만 차트 플로팅과 같은 특정 대화형 기능은 번역될 때 다른 메커니즘이 필요할 수 있습니다. 또한디스플레이()다음으로 변경해야 할 수도 있습니다인쇄()또는 독립형 Python 스크립트에서 작업하는 것과 유사합니다. 또한 Jupyter 노트북은 Python 셀의 마지막 명령으로 반환된 데이터를 표시합니다. Python에서는 다른 것을 사용해야 합니다.인쇄()반환 값을 출력으로 가져옵니다.
번역된 슬롯 커뮤니티 Jupyter 노트북의 전체 예를 보려면 참조[슬롯 커뮤니티 경로]/api/python/examples/magic/millco.py이것은 다음의 번역입니다.Millco.ipynb노트북.