आपके प्रश्न के लिए ओपी और आपके उत्तर के लिए रोमन धन्यवाद। मुझे यह खोजने के लिए थोड़ा सा खोजना पड़ा; मुझे आशा है कि निम्नलिखित दूसरों की मदद करेगा।
अजगर 2,7
देखें: https://docs.scipy.org/doc/numpy-dev/user/basics.io.genfromtxt.html
import numpy as np
from StringIO import StringIO
data = "1, abc , 2\n 3, xxx, 4"
print type(data)
"""
<type 'str'>
"""
print '\n', np.genfromtxt(StringIO(data), delimiter=",", dtype="|S3", autostrip=True)
"""
[['1' 'abc' '2']
['3' 'xxx' '4']]
"""
print '\n', type(data)
"""
<type 'str'>
"""
print '\n', np.genfromtxt(StringIO(data), delimiter=",", autostrip=True)
"""
[[ 1. nan 2.]
[ 3. nan 4.]]
"""
अजगर 3.5:
import numpy as np
from io import StringIO
import io
data = "1, abc , 2\n 3, xxx, 4"
#print(data)
"""
1, abc , 2
3, xxx, 4
"""
#print(type(data))
"""
<class 'str'>
"""
#np.genfromtxt(StringIO(data), delimiter=",", autostrip=True)
# TypeError: Can't convert 'bytes' object to str implicitly
print('\n')
print(np.genfromtxt(io.BytesIO(data.encode()), delimiter=",", dtype="|S3", autostrip=True))
"""
[[b'1' b'abc' b'2']
[b'3' b'xxx' b'4']]
"""
print('\n')
print(np.genfromtxt(io.BytesIO(data.encode()), delimiter=",", autostrip=True))
"""
[[ 1. nan 2.]
[ 3. nan 4.]]
"""
एक तरफ:
dtype = "| Sx", जहाँ x = के किसी भी {1, 2, 3, ...}:
dtypes. Difference between S1 and S2 in Python
"| एस 1 और | S2 तार डेटा प्रकार वर्णनकर्ता कर रहे हैं; पहले इसका मतलब सरणी लंबाई 1, लंबाई 2. के दूसरे के तार रखती है ... "
, उल्लेख इन ही नहीं हैं वर्थ तो आप कर सकते हैं समाप्त यदि आप अलगाव में यह परिवर्तन करते हैं तो 'TypeError's (स्ट्रिंग तर्क अपेक्षित,' बाइट्स 'प्राप्त हुआ) के साथ। आपको पाइथन 3 में बीटीई और स्ट्र (यूनिकोड) को ध्यान से अंतर करने की आवश्यकता है। –
मेरे जैसे नए लोगों के लिए: आईओ आयात से स्ट्रिंगियो का मतलब है कि आप इसे स्ट्रिंगियो() के रूप में कहते हैं, io.StringIO() नहीं। – Noumenon
वास्तव में पाइथन 2 और 3 के साथ संगत कैसे हो: केवल 'आईओ आयात स्ट्रिंगियो' –