Chcę przekonwertować a = [1,2,3,4,5]
na a_string = "1 2 3 4 5"
. Prawdziwa zmienna tablica jest dość duża (50000 x 200), więc zakładam, że użycie for loops
jest zbyt wolne.Jak wydrukować tablicę Numpy bez nawiasów?
Odpowiedz
Można użyć metody join
z ciągiem:
>>> a = [1,2,3,4,5]
>>> ' '.join(map(str, a))
"1 2 3 4 5"
Numpy zapewnia dwie funkcje dla tego array_str i array_repr - z których każdy powinien pasować do Twoich potrzeb. Ponieważ można użyć jednej, oto przykład każda:
>>> from numpy import arange, reshape, array_str
>>> M = arange(10).reshape(2,5)
>>> M
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
>>> array_str(M)
'[[0 1 2 3 4]\n [5 6 7 8 9]]'
>>> array_repr(M)
'array([[0, 1, 2, 3, 4],\n [5, 6, 7, 8, 9]])'
Te dwie funkcje są zarówno wysoce zoptymalizowany i jako takie powinny być preferowane nad funkcji można napisać samemu. Kiedy mam do czynienia z tablicami tej wielkości, wyobrażam sobie, że chcesz uzyskać wszystkie możliwe prędkości.
Korzystanie z wbudowanych funkcji jest zdecydowanie korzystne, ale nadal pozostawia nawiasy. Tak więc to metoda superior dla innych, ale podobnych przypadków. +1 – Framester
Powiedziałeś, że potrzebujesz zapisać ciąg do pliku. Jeśli masz plany dotyczące późniejszego pobierania ciągu znaków z tego pliku, przydatne może być użycie nawiasów. Ponadto kombinacja pod-łańcuchów i podziałów() usunie nawiasy. – mau5padd
Jeśli masz numpy tablicy na początek zamiast listy (ponieważ można wymienić „prawdziwy numpy tablicy” w swoim poście) można wykorzystać re.sub
na ciąg znaków z tablicy:
print(re.sub('[\[\]]', '', np.array_str(a)))
Ponownie, zakładamy, że Twoja tablica a
była tablicą numpy w pewnym momencie. Ma to tę zaletę, że działa również na macierzach.
np.savetxt
import numpy as np
import sys
a = np.array([[0.0, 1.0, 2.0, 3.0]])
np.savetxt(sys.stdout, a)
wyjściowa:
0.000000000000000000e+00 1.000000000000000000e+00 2.000000000000000000e+00 3.000000000000000000e+00
Albo jeśli tablica jest odwrócony:
a = np.array([0.0, 1.0, 2.0, 3.0])
np.savetxt(sys.stdout, a, newline=" ")
lub jeśli naprawdę potrzebują ciąg:
import StringIO
s = StringIO.StringIO()
np.savetxt(s, a)
print s.getvalue()
można sterować precyzję z fmt
uzyskanie:
np.savetxt(sys.stdout, a, fmt="%.3f")
wyjściowy:
0.000 1.000 2.000 3.000
czyli
np.savetxt(sys.stdout, a, fmt="%i")
wyjściowa:
0 1 2 3
Testowany na Pythonie 2.7.12, numpy 1.11.1.
- 1. Jak przeanalizować tablicę numpy?
- 2. Jak wydrukować obiekt/tablicę jquery
- 3. Jak wydrukować listę z liczbami całkowitymi bez nawiasów, przecinków i bez cudzysłowów?
- 4. jak zmodyfikować tablicę 2D numpy w określonych lokalizacjach bez pętli?
- 5. Skutecznie sumuje małą tablicę numpy, transmitowaną przez gigantyczną tablicę numpy?
- 6. Czy mogę wydrukować tablicę ciągów bez użycia pętli for?
- 7. Jak zamienić tablicę boolowską na tablicę indeksową w numpy
- 8. Jak wydrukować wielowymiarową tablicę w ruby?
- 9. Jak wydrukować tablicę asocjacyjną w dtrace?
- 10. Spłaszczaj tablicę numpy
- 11. Lista drukowania bez nawiasów w jednym wierszu
- 12. Java: Drukowanie LinkedList bez nawiasów kwadratowych?
- 13. Jak przypisać tablicę 1D numpy do tablicy 2D numpy?
- 14. Jak pomnożyć numpy tablicę 2D z numpy 1D array?
- 15. Jak utworzyć pustą tablicę/macierz w NumPy?
- 16. Jak utworzyć tablicę z rekordową numpy C
- 17. Jak wykonać tę tablicę indeksowanie w numpy
- 18. Jak wyciąć tablicę Numpy do granicy?
- 19. Jak uczynić tablicę 2d numpy tablicą 3d?
- 20. Jak zapisać numpy zamaskowaną tablicę do pliku
- 21. Tablica NumPy indeksująca tablicę 4D
- 22. Wyświetl tablicę numpy w Kivy
- 23. Clojure drukowanie listy bez nawiasów?
- 24. Rozpakuj tablicę NumPy według kolumny
- 25. Jak przekonwertować ciąg ruby za pomocą nawiasów na tablicę?
- 26. Jak wydrukować ciąg z plist bez "Opcjonalnie"?
- 27. Jak wydrukować coś bez nowej linii ruby
- 28. numpy unique bez sortowania
- 29. Konwertuj tablicę 1D na tablicę 2D w numpy
- 30. Inwersja macierzy bez Numpy
: Sprawdź to http://stackoverflow.com/questions/5365520/numpy-converting-array-from-float-to-strings – George
Czy na pewno naprawdę potrzebujesz reprezentacji ciągów dla tej dużej tablicy? Po co? –
Następnie muszę zapisać to i trzy inne tablice do pliku. Wszystkie macierze mają różne rozmiary i muszę je zapisać naprzemiennie w pliku, więc planuję zrobić to ręcznie za pomocą 'writeline'. – Framester