मैं a = [1,2,3,4,5]
को a_string = "1 2 3 4 5"
में परिवर्तित करना चाहता हूं। वास्तविक numpy सरणी काफी बड़ा है (50000x200) तो मुझे लगता है कि for loops
का उपयोग करना बहुत धीमा है।ब्रैकेट के बिना एक अम्पी सरणी कैसे मुद्रित करें?
उत्तर
आप स्ट्रिंग से join
विधि का उपयोग कर सकते हैं:
>>> a = [1,2,3,4,5]
>>> ' '.join(map(str, a))
"1 2 3 4 5"
Numpy इस array_str और array_repr के लिए दो कार्य प्रदान करता है - या तो जिनमें से आपकी आवश्यकताओं को करना चाहिए। आप या तो इस्तेमाल कर सकते हैं के बाद से, यहाँ प्रत्येक का एक उदाहरण है:
>>> 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]])'
इन दोनों कार्यों दोनों अत्यधिक अनुकूलित कर रहे हैं और, जैसे, एक समारोह आप अपने आप को लिख सकते हैं से अधिक पसंद किया जाना चाहिए। इस आकार के सरणी से निपटने पर, मुझे लगता है कि आप जो गति प्राप्त कर सकते हैं उसे आप चाहते हैं।
बिल्ड-इन फ़ंक्शंस का उपयोग करना निश्चित रूप से लाभ का है, लेकिन यह अभी भी ब्रैकेट को छोड़ देता है। तो यह अन्य के लिए बेहतर तरीका, लेकिन समान, मामलों। +1 – Framester
आपने कहा कि आपको स्ट्रिंग को फ़ाइल में सहेजने की आवश्यकता है। यदि आपके पास उस फ़ाइल से स्ट्रिंग को बाद में पुनर्प्राप्त करने की योजना है तो यह ब्रैकेट्स के लिए उपयोगी हो सकता है। इसके अलावा, उप-तारों और विभाजन() का संयोजन ब्रैकेट को हटा देगा। – mau5padd
आप एक numpy सरणी एक के बजाय सूची (जब से तुम एक "वास्तविक numpy सरणी" अपनी पोस्ट में उल्लेख) आप सरणी के स्ट्रिंग प्रतिनिधित्व पर re.sub
इस्तेमाल कर सकते हैं के साथ शुरू है, तो:
print(re.sub('[\[\]]', '', np.array_str(a)))
फिर, यह मान रहा है कि आपकी सरणी a
किसी बिंदु पर एक numpy सरणी थी। यह matrices पर भी काम करने का लाभ है।
np.savetxt
import numpy as np
import sys
a = np.array([[0.0, 1.0, 2.0, 3.0]])
np.savetxt(sys.stdout, a)
आउटपुट:
0.000000000000000000e+00 1.000000000000000000e+00 2.000000000000000000e+00 3.000000000000000000e+00
या यदि सरणी उलटा:
:a = np.array([0.0, 1.0, 2.0, 3.0])
np.savetxt(sys.stdout, a, newline=" ")
या आप वास्तव में एक स्ट्रिंग की जरूरत है
import StringIO
s = StringIO.StringIO()
np.savetxt(s, a)
print s.getvalue()
आप प्राप्त करने के लिए fmt
साथ सटीक नियंत्रण कर सकते हैं:
np.savetxt(sys.stdout, a, fmt="%.3f")
उत्पादन:
0.000 1.000 2.000 3.000
या:
np.savetxt(sys.stdout, a, fmt="%i")
उत्पादन:
0 1 2 3
पायथन 2.7.12, numpy 1.11.1 पर परीक्षण किया गया।
- 1. बिना किसी अतिरिक्त नोटेशन (वर्ग ब्रैकेट [] और तत्वों के बीच रिक्त स्थान) के बिना बेवकूफ सरणी कैसे मुद्रित करें?
- 2. जीडीबी में फोरट्रान सरणी कैसे मुद्रित करें?
- 3. जावास्क्रिप्ट में ऑब्जेक्ट सरणी कैसे मुद्रित करें?
- 4. पर्ल 2-आयामी सरणी कैसे मुद्रित करें?
- 5. print_r $ _POST सरणी कैसे मुद्रित करें?
- 6. PHP: लूप के दौरान सहयोगी सरणी कैसे मुद्रित करें?
- 7. एक पंक्ति में ब्रैकेट के बिना प्रिंट सूची
- 8. कैसे मुद्रित करें pthread_t
- 9. एक ब्रैकेट
- 10. एक ब्रैकेट
- 11. एक चार सरणी के हेक्साडेसिमल प्रतिनिधित्व को मुद्रित करना []
- 12. एक निश्चित आकार के बिना एक डबल सरणी परिभाषित करें?
- 13. लिंक स्थानों को मुद्रित किए बिना एक वेबसाइट प्रिंट करें?
- 14. जावास्क्रिप्ट सरणी ब्रेसिज़ बनाम ब्रैकेट
- 15. ब्रैकेट गड़बड़ के बिना JQuery पैरामीटर क्रमबद्धता
- 16. PHP यदि ब्रैकेट के बिना/अन्य कथन
- 17. डेल्फी: इसे दिखाए बिना पीडीएफ कैसे मुद्रित करें?
- 18. जावा स्क्रिप्ट में निम्न मल्टी-आयामी सरणी कैसे मुद्रित करें?
- 19. ReSharper के साथ एक समापन ब्रैकेट पर नेविगेट कैसे करें?
- 20. क्लोजर बिना किसी सूची के एक सूची मुद्रित?
- 21. underscore.js टेम्पलेट में सरणी मुद्रित करने के लिए कैसे?
- 22. ऑब्जेक्ट आईडी कैसे मुद्रित करें?
- 23. एक नई लाइन के बजाय '\ n' कैसे मुद्रित करें?
- 24. इसकी सामग्री के बिना एक सरणी की संरचना मुद्रण?
- 25. printf दाएं एक ब्रैकेट किए गए नंबर को संरेखित करें
- 26. रूबी में [] ब्रैकेट को ओवरराइड कैसे करें?
- 27. एक सरणी mpf कैसे करें?
- 28. एक सरणी कैसे विभाजित करें?
- 29. मैं रूबी स्ट्रिंग को एक सरणी में ब्रैकेट के साथ कैसे परिवर्तित करूं?
- 30. जावा: स्क्वायर ब्रैकेट के बिना लिंक्ड लिस्ट प्रिंटिंग?
: यह जांचें http://stackoverflow.com/questions/5365520/numpy-converting-array-from-float-to-strings – George
क्या आप वाकई उस बड़े सरणी के लिए स्ट्रिंग प्रस्तुति की आवश्यकता है? किस लिए? –
बाद में मुझे फ़ाइल में यह और तीन अन्य सरणी लिखने की आवश्यकता है। सभी सरणी के अलग-अलग आकार होते हैं और मुझे उन्हें फ़ाइल में बदलना होता है, इसलिए मैं इसे 'लेखन रेखा' का उपयोग करके मैन्युअल रूप से करने की योजना बना रहा हूं। – Framester