JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합JMP 18에는 Python과 통합하는 새로운 방법이 있습니다. JMP 18 설치에는 JMP와 함께 사용하도록 설계된 독립적인 Python 환경이 함께 제공됩니다. 또한 JMP에는 이제 기본 Python 편집기와 JMP 전용 Python 패키지가 있습니다. 이 JMP Python 환경은 JMP와의 연결성과 상호 작용을 향상시켰습니다. 즉, JMP와 함께 Python을 사용하는 것이 그 어느 때보다 쉬워졌습니다.
이 블로그 게시물 시리즈에서는 JMP와 Python 통합의 새로운 기능을 소개합니다. 이 게시물에서는 JMP의 새로운 Python 스크립트 편집기를 안내합니다. 다음 게시물에서는 통합의 다른 새로운 기능과 패키지 관리를 다룹니다.
JMP Python 스크립트 편집기
이전 버전의 JMP에서 Python 코드를 실행하는 유일한 방법은 외부에 설치된 Python 환경에 연결한 다음 JSL(JMP 스크립팅 언어) 래퍼 함수를 사용하여 Python 코드를 해당 환경에 제출하는 것이었습니다. 이제 JMP에서 직접 Python 스크립트를 편집하고 제출할 수 있습니다! JMP에서 Python 스크립트를 열거나 파일 메뉴(파일 > 새로 만들기 > Python 스크립트)에서 새 스크립트를 생성하기만 하면 됩니다.

새로운 Python 스크립트 편집기에는 구문 강조 기능이 있어 Python에서 보다 자연스러운 방식으로 코딩할 수 있습니다. 스크립트 실행 버튼을 클릭하면 Python 코드가 실행되고, Python에 기록된 메시지가 JMP 로그에 나열됩니다.
jmp 및 jmputils Python 패키지
새로운 JMP Python 환경과 함께 두 가지 새로운 "JMP 인식" Python 패키지인 jmp 및 jmputils가 제공됩니다.
jmp 패키지를 사용하면 다음을 수행할 수 있습니다.
- jmp.run_jsl('''jsl script''')를 사용하여 Python에서 JSL을 실행합니다.
- 데이터 테이블을 열고 닫고 저장합니다.
- JMP에 열려 있는 테이블에 대한 정보를 가져옵니다.
- JMP 데이터 테이블을 생성하고, JMP 데이터 테이블 열을 추가/삭제/수정하고, JMP 데이터 테이블 행을 추가/삭제합니다.
- 데이터 테이블에서 0부터 시작하는 인덱스 배열 연산자를 사용하여 메모리 내 열 또는 셀 수준에서 직접 JMP 데이터 테이블의 데이터에 액세스합니다. 이 인덱싱은 열 및 행 인덱스 모두에서 Python 슬라이스 연산자도 지원합니다.
- JMP 데이터 테이블과 JMP 데이터 테이블 열을 Python 반복의 시퀀스로 사용합니다.
jmputils 패키지를 사용하면 다음을 수행할 수 있습니다.
- jmputils.create_jmp(dir_path)를 사용하여 지정된 디렉터리에 명령줄 JMP pip(jpip) 스크립트를 만듭니다. 그런 다음 이 스크립트를 사용하여 JMP Python 환경에 패키지를 설치할 수 있습니다. 특정 Python 패키지의 경우 명령줄에서 설치해야 하는 경우가 있습니다.
- jmputils.jpip( ) 함수를 사용하여 JMP Python 환경에 Python 패키지를 설치합니다.
이러한 모든 기능은 도움말 문서[링크]에 자세히 설명되어 있으며 JMP 스크립팅 색인에는 이러한 모든 패키지와 기능을 나열하는 새로운 Python 범주도 있습니다.

Python JSL 함수
이전 버전의 JMP와 마찬가지로 Python Execute( ), Python Submit( ) 및 Python Submit File( ) 함수를 사용하여 JSL에서 Python을 실행할 수 있습니다. Python Send( ) 및 Python Get( ) 함수를 사용하여 JMP와 Python 간에 데이터를 전송할 수도 있습니다.
Python JSL 함수에 대한 변경 사항은 다음과 같습니다.
- Python Connect( )는 JMP에서 로컬 Python에 대한 스크립트 가능한 객체 생성을 계속 지원합니다.
- Python Send(data_table)는 이제 Python의 메모리 내에서 액세스할 수 있는 JMP 데이터 테이블에 대한 실시간 참조인 jmp.Datatable 객체를 Python으로 생성합니다. 이전에는 테이블을 CSV 파일로 디스크에 내보내고 팬더가 CSV 파일을 읽도록 하여 data_table의 복사본이 pandas.DataFrame으로 생성되었습니다. 이는 대규모 데이터 테이블의 경우 매우 느릴 수 있으며 바이너리로 인해 데이터 품질이 저하될 수 있습니다. ->텍스트->이진 변환.
- Python Get(객체_이름):
- object_name이 Python의 공개 JMP 데이터 테이블을 참조하는 변수 이름인 경우 Python 변수 이름이 참조하는 JMP 데이터 테이블에 대한 JSL 스크립트 가능 객체 참조를 반환합니다.
- object_name이 Python pandas 데이터 프레임인 경우 pandas 데이터 프레임을 CSV 파일에 쓴 다음 해당 파일을 새 JMP 데이터 테이블로 엽니다. 그러나 Python에서 메모리 내 JMP 데이터 테이블을 생성하고 연결하는 새로운 기능을 고려할 때 이 접근 방식은 권장되지 않습니다.
더 이상 필요하지 않은 더 이상 사용되지 않는 JSL Python 함수:
- Python 그래픽 가져오기( )
- 파이썬 제어( )
- 파이썬 초기화()
- Python이 연결됨( )
- 파이썬 용어( )
새로운 JSL Python 함수는 다음과 같습니다.
- Python 설치 패키지( )를 사용하면 JMP Python 환경에 Python 패키지를 설치할 수 있습니다.
- Python Create JPIP( )는 JMP jpip을 래핑하고 운영 체제의 명령줄에서 Python 패키지를 설치하는 데 사용할 수 있는 명령줄 스크립트를 생성합니다. 스크립트는 디렉터리 선택기 대화 상자를 통해 선택한 디렉터에 작성됩니다.
자동화 및 스크립팅답: JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합Workflow Builder에서 JSL 코드 대신 Python을 사용할 계획이 있습니까?
답: JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합이 게시물에 두 개의 "JMP 인식 Python 패키지" 문서에 대한 링크를 제공하면 도움이 될 것입니다.
감사해요!
에릭
답: JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합아, 기사에 그러한 문서에 대한 링크에 대한 자리 표시자가 있는 것을 확인했습니다. 실제 링크로 대체하면 됩니다.
답: JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합내 Python 인터프리터를 사용할 수 없는 경우 정기적으로 해당 Python 코드를 실행하여 데이터를 처리하여 차트를 자동으로 생성하는 예약된 작업을 코드에 제공하는 솔루션이 있습니까?
답: JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합아니요.
그것은 너무 문제가 많았습니다. 일부 사용자에게는 효과가 있었지만 너무 많은 고객이 제대로 작동하는 데 어려움을 겪었습니다. 가장 중요한 점은 JMP에서 실행되는 Python 스크립트가 다른 사용자의 컴퓨터에서 제대로 실행된다는 보장이 없다는 것입니다. 사용자 정의 Python 설치 위치가 있는 경우에는 그렇지 않을 것입니다. 사용자로서 JMP에서 제공하는 Python을 자신만의 JMP 전용 Python 가상 환경으로 취급하십시오.
우리는 JMP Python이 시스템에 있는 다른 Python 설치와 격리되도록 많은 노력을 기울였습니다. 기존 파이프라인을 사용하는 데 방해가 되는 것은 없으며 JMP 환경에 패키지를 설치할 수 있습니다. 해당 작업 흐름을 JMP 내로 가져올 수도 있습니다. JMP 18의 추가 기능을 사용하면 원하는 경우 JMP와 외부 Python 파이프라인 간에 데이터를 더 쉽게 가져오고 내보낼 수 있습니다.
우리는 구성 없이 JMP를 처음 시작할 때 작동하는 테스트되고 검증된 Python 설치의 이점이 더 나은 고객 경험이라고 믿습니다. 알려진 Python 버전과 위치가 있으면 예측할 수 없는 고객 Python 설치로 인한 문제를 해결하기 위해 싸우는 대신 기능을 제공하는 데 집중할 수 있습니다. 안정성과 내장된 Python을 통해 훨씬 더 심층적인 통합을 제공할 수 있습니다. Python의 메모리에 있는 JMP 데이터 테이블을 생성, 수정, 액세스할 수 있는 새로운 기능은 그러한 기능 중 하나입니다.
나는 이로 인해 JMP 14-17에서 전환이 발생한다는 것을 알고 있습니다. JMP 18은 기능의 근본적인 변화입니다. 초기 설계 결정 중 일부는 시간 테스트를 견디지 못했습니다. 비호환성을 최소화하려고 노력했지만 일부 변경이 필요했습니다. 변경이 필요한 부분에서는 JMP 18이 안정적인 기반을 제공할 수 있도록 18년에 완료되었습니다.
답: JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합아니요, 가까운 미래에는 아닙니다. 그러나 그것은 좋은 새로운 기능 요청이 될 것입니다.
할 수 있는 일이 많이 있습니다. 문제는 모든 사람에게 가장 큰 이익을 가져다 주는 것에 먼저 초점을 맞추는 것입니다. 현재 주요 초점은 기본적인 문제, 특히 Python과 JSL 간의 데이터 액세스 및 상호 운용성에 있습니다.
표현식 열 설정, 행 상태 열, 열 형식 지정 등 Python의 모든 기능을 갖춘 데이터 테이블 액세스를 만들기 위해서는 아직 해야 할 일이 많이 남아 있습니다. JSL과 Python 간의 데이터 마샬링이 많은 JMP 데이터 유형을 포함하는지 확인 가능한 한.
대규모 정밀 검사에서는 예상할 수 있듯이 몇 가지 버그와 작은 실수가 있습니다. 이러한 문제도 해결되어야 합니다. Python 코드를 활용하는 JMP 추가 기능은 제대로 작동하지만 추가 기능 빌더는 아직 Python 파일에 대해 알지 못하므로 JMP 추가 기능 파일(zip 아카이브)을 직접 압축해야 합니다. 또한 프로젝트 내의 Python 파일은 정상적으로 실행되지만 데이터 테이블, 기타 데이터 파일 또는 추가 Python 스크립트와 같이 프로젝트 파일 내에 포함된 다른 파일을 찾는 방법은 아직 모릅니다. 작동해야 하는 다른 제한 사항이 있는 경우 기술 지원에 보고하십시오. 작업에 대한 JMP의 성능을 향상시켜 줄 새로운 멋진 기능을 기능 요청으로 제출해 주세요.
답: JMP는 Pythonic입니다! JMP 18의 향상된 Python 통합안녕하세요 @Paul_Nelson 님 ,
워크플로 빌더에서 Python 지원을 제공하고 싶다는 의사를 제출했습니다.
큰 윈윈(win-win):
- JSL 및 Python 코드의 원활한 포잉퐁
- 이미 Workflow Builder를 사용하고 있는 사용자를 위한 멋진 개선 사항입니다.
워크플로 빌더 + Python
Re: JMP는 Pythonic입니다! JMP 18에서 향상된 Python 통합JMP를 처음 접했는데, 이건 초보자 질문일 수도 있겠네요. 저는 아직 블로그를 탐색하고 있습니다. JMP에서 Python 스크립트를 사용하는 방법에 대해 더 자세히 알아보려면 어떻게 해야 하나요? Python 코드를 쓸 수 있나요? 참고할 수 있는 블로그가 있나요? 감사합니다.
Re: JMP는 Pythonic입니다! JMP 18에서 향상된 Python 통합안녕하세요 @zetaVagabond1 ,
JMP에서 Python 스크립트를 사용하는 방법을 배우기 위한 제가 가장 좋아하는 리소스 몇 가지는 다음과 같습니다.
JMP 18에서 Python 통합 시작하기
JMP로 Python 게임 레벨을 높이세요
학술 웨비나: JMP와 Python 통합
@Paul_Nelson은 JMPer 케이블 블로그 에도 여러 개의 블로그 게시물을 올렸습니다.
Re: JMP는 Pythonic입니다! JMP 18에서 향상된 Python 통합스크립팅 인덱스를 살펴보세요. 기능에 대한 설명서와 샘플이 있습니다. JSL에서 작업할 때 value = Python Get( py_var ); Python Send( jsl_var ); Python Submit( "python code"); 와 같은 함수가 많이 있습니다.
Python 측면에서 스크립팅 인덱스에 'Python' 최상위 범주가 있는데, 여기에는 제이엠피 import 패키지와 jmputils 패키지의 사용법이 자세히 나와 있습니다. 제이엠피 패키지 내에서 Python 인터페이스가 JMP 기능에 포함되어 있으며, 여기에는 Python에서 데이터 테이블을 만들고, 읽고, 쓰는 것과 Python 스크립트에서 JSL을 실행하는 기능도 포함됩니다. jmp.run_jsl(' JSL 코드 '). jmputils 에는 Python의 pip()를 래퍼로 감싸서 설치된 패키지가 JMP의 Python 통합을 위한 격리된 개인 환경에 들어가도록 하는 jmputils.jpip( ) 함수가 포함되어 있습니다.
Re: JMP는 Pythonic합니다! JMP 18에서 향상된 Python 통합간단히 말씀드리자면, JMP에 파이썬을 통합한 기능은 JMP v18에서 제가 가장 좋아하는 기능 중 하나입니다. 저희는 데이터 변환 및 기타 함수를 처리하는 자체 파이썬 패키지를 가지고 있는데, JMP는 이러한 함수를 쉽게 가져와서 기존 데이터에서 새 열 데이터를 생성하고 바로 JMP에 다시 적용할 수 있도록 해줍니다. 얼마 전 JMP 데이터 테이블의 일부 데이터에 특정 좌표 변환을 해야 했는데, JMP의 파이썬 기능을 사용하여 새 열을 생성하는 데 몇 분밖에 걸리지 않았습니다.
파이썬 호환성에 대한 깔끔하고 인상적인 첫걸음을 내디딘 Paul 외 여러 분께 찬사를 보냅니다!