¿Python escribe datos de la memoria a JMP solo en forma circular?import jmp;file_path = r"C:\0\test.txt"
data = []
with open(file_path, 'r') as file:
for line in file:
row = line.strip().split('\t')
data.append([float(row[0]), float(row[1])])
dt = jmp.DataTable("New Table", len(data))
col_A = dt.new_column('A', jmp.DataType.Numeric)
col_B = dt.new_column('B', jmp.DataType.Numeric)
for i, (a, b) in enumerate(data):
dt['A'][i] = a
dt['B'][i] = b
¿Este formulario funciona como en el código JSL original?
dt[0,0] = data[0,0]
¡Gracias expertos!
Automatización y scriptingVentanasRe: ¿Python escribe datos de la memoria a JMP solo en forma circular?Lo intento, no palabra.
import jmp;file_path = r"C:\0\test.txt"
data = []
with open(file_path, 'r') as file:
for line in file:
row = line.strip().split('\t')
data.append([float(row[0]), float(row[1])])
r=len(data)
print(f"num {b}")
jmp.run_jsl("""
ar=Python Get(date[]);r=Python Get(b);
d2=New Table("test",Add Rows(r),New Column("A"),New Column("B"));
d2[0,0] = ar[0,0]
""")Re: ¿Python escribe datos de la memoria a JMP solo en forma circular?Grabación de Scripters Club: Ejecución de código Python dentro de JSL. Hay ejemplos en la carpeta de instalación de JMP \18\Samples\Scripts\Python y creo que algunos en la guía de scripting Ejemplos adicionales de JSL a Python (jmp.com) . Se pueden encontrar más en muchas presentaciones de Paul (también las menciono en mi presentación de Scripters Club)
Re: ¿Python escribe datos de la memoria a JMP solo en forma circular?Esta forma de bucle del código que publiqué ya está implementada.
Me pregunto si Python tiene esta característica.
dt[0,0] = datos[0,0]
Los expertos dijeron que he visto estos contenidos, pero mis conocimientos de inglés son pobres y mi conocimiento de programación no es mucho.Aún no resuelto.
Si hubiera encontrado la manera, no habría dedicado tanto tiempo a escribir este post.
Así que pregunte a los expertos si pueden ayudar.
Re: ¿Python escribe datos de la memoria a JMP solo en forma circular?¿Qué característica? ¿Insertar subíndices en la tabla de datos y establecer todos los valores de la tabla de datos a partir de la matriz?
Puedes configurar todos los valores con run_jsl
import jmp
file_path = r"C:\Users\jarmo\Downloads\test(1).txt"
data = []
with open(file_path, 'r') as file:
for line in file:
row = line.strip().split('\t')
data.append([float(row[0]), float(row[1])])
jmp.run_jsl("""
m = Python Get(data);
dt = New Table("test",
Add Rows(N Items(m)),
New Column("A"),
New Column("B")
);
dt[0,0] = m
""")Re: ¿Python escribe datos de la memoria a JMP solo en forma circular?¡Gracias expertos!
dt[0,0] = m
d2[0,0] = ar[0,0]

Re: ¿Python escribe datos de la memoria a JMP solo en forma circular?Además, pregúntele a un experto: ¿cómo concatenar dos tablas JMP con los mismos nombres de columna en un entorno de Python?
¿También quieres llamar al código de concatenación de JSL?
¡Gracias!
Re: ¿Python escribe datos de la memoria a JMP solo en forma circular?Comprobando rápidamente el índice de scripts, parece que esa sería la opción más fácil.
Re: ¿Python escribe datos de la memoria a JMP solo en forma circular?Ejemplos de esta funcionalidad se encuentran en el Índice de secuencias de comandos. También es Python básico, estos objetos fueron diseñados para comportarse con la funcionalidad que un programador de Python esperaría. El operador de mapeo del objeto de tabla de datos [ ] le devuelve una referencia de objeto de columna, que luego se puede iterar para el valor de fila. El mapeo de la tabla de datos puede tomar el 'nombre' o el índice basado en 0. Entonces, donde i y j son ambos números enteros
dt[ i ][ j ] sigue siendo perfectamente válido.
Como es el siguiente
para x en dt:
x[fila] = valor
Aquí se itera a través de dt en orden sin necesidad de conocer ni el índice ni el nombre de la columna.
La clave para recordar es que el objeto dt es una colección de columnas y la columna es una colección de filas, por lo que la indexación es dt[columna] [fila].
Además, len(dt) devuelve el número de columnas, al igual que dt.ncols.
De manera similar, len( dt[0] ) devuelve la longitud de la primera columna, al igual que dt.nrows, ya que todas las columnas tienen la misma longitud.