Python écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?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
Ce formulaire fonctionne-t-il comme dans le code JSL d'origine ?
dt[0,0] = data[0,0]
Merci les experts !
Automatisation et scriptsFenêtresRe : Python écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?Je l'essaye, pas de mot.
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 écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?Enregistrement du Scripters Club : Exécution de code Python dans JSL , il y a des exemples dans votre dossier d'installation JMP \18\Samples\Scripts\Python et je pense que certains se trouvent dans le guide de scripting Exemples supplémentaires de JSL vers Python (jmp.com) . Vous trouverez plus d'informations dans de nombreuses présentations de Paul (je les mentionne également dans ma présentation du Scripters Club)
Re : Python écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?Cette forme de boucle du code que j'ai publié est déjà implémentée.
Je me demande juste si Python a cette fonctionnalité
dt[0,0] = données[0,0]
Les experts ont dit que j'avais vu ce contenu, mais mes compétences en anglais étaient médiocres et mes connaissances en programmation n'étaient pas nombreuses.Toujours pas résolu.
Si j’avais trouvé un moyen, je n’aurais pas passé autant de temps à écrire cet article.
Alors demandez aux experts s’ils peuvent vous aider.
Re : Python écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?Quelle fonctionnalité ? Inscription à la table de données et définition de toutes les valeurs de la table de données à partir de la matrice ?
Vous pouvez définir toutes les valeurs avec 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 écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?Merci les experts !
dt[0,0] = m
d2[0,0] = ar[0,0]

Re : Python écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?De plus, demandez à un expert : comment concaténer deux tables JMP avec les mêmes noms de colonnes dans un environnement Python ?
Vous souhaitez également appeler le code de concaténation de JSL ?
Merci!
Re : Python écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?En vérifiant rapidement à partir de l'index de script, il semble que ce soit l'option la plus simple.
Re : Python écrit-il les données de la mémoire vers JMP uniquement sous une forme circulaire ?Des exemples de cette fonctionnalité se trouvent dans l'index de script. C'est aussi du Python de base, ces objets ont été conçus pour se comporter avec la fonctionnalité qu'un programmeur Python attendrait. L'opérateur de mappage de l'objet de table de données [ ] vous renvoie une référence d'objet de colonne, qui peut ensuite être parcourue pour la valeur de ligne. Le mappage de la table de données peut prendre soit le « nom », soit l'index basé sur 0. Ainsi, où i et j sont tous deux des entiers
dt[ i ][ j ] est toujours parfaitement valide.
Comme c'est le cas suivant
pour x dans dt :
x[ligne] = valeur
Ici, cela itère sur dt dans l'ordre sans avoir besoin de connaître ni l'index ni le nom de la colonne.
La clé à retenir est que l'objet dt est une collection de colonnes et que la colonne est une collection de lignes, donc l'indexation est dt[colonne] [ligne].
Len(dt) renvoie également le nombre de colonnes, tout comme dt.ncols.
De même, len( dt[0] ) renvoie la longueur de la première colonne comme le fait dt.nrows puisque toutes les colonnes ont la même longueur.