The fromstring()
method creates a 1-D array from raw binary or text data in a string.
Example
import numpy as np
# create a string to read from
string1 = '1 2 3'
# create array from string
array1 = np.fromstring(string1, sep =' ')
print(array1)
# Output: [1. 2. 3.]
Note: fromstring()
is commanly used for numerical data and thus byte support has been deprecated.
fromstring() Syntax
The syntax of fromstring()
is:
numpy.fromstring(string, dtype=float, count=-1, sep, like=None)
fromstring() Argument
The fromstring()
method takes the following arguments:
string
- the string to read (str
)dtype
(optional)- type of output array(dtype
)count
(optional)- number of items to read(int
)sep
- the sub-string separating elements in the string(str
)like
(optional)- reference object used for the creation of non-NumPy arrays(array_like
)
Note: The default value of count
is -1, which means all data in the buffer.
fromstring() Return Value
The fromstring()
method returns an array from a string.
Example 1: Create an Array Using fromstring()
import numpy as np
string1 = '12 13 14 15'
string2 = '12, 13, 14, 15'
# load from string with element separated by whitespace
array1 = np.fromstring(string1, sep = ' ')
# load from string with element separated by commas
array2 = np.fromstring(string2, sep = ',')
print(array1)
print(array2)
Output
[12. 13. 14. 15.] [12. 13. 14. 15.]
Example 2: Use dtype Argument to Specify Data Types
The dtype
argument helps specify the required datatype of created numpy arrays.
import numpy as np
string1 = '\x01\x02\x03\x04'
# load from the string as int8
array1 = np.fromstring(string1, dtype = np.uint8)
print(array1)
# load from the buffer as int16
array2 = np.fromstring(string1, dtype = np.uint16)
print(array2)
Output
<string>:7: DeprecationWarning: The binary mode of fromstring is deprecated, as it behaves surprisingly on unicode inputs. Use frombuffer instead [1 2 3 4] <string>:11: DeprecationWarning: The binary mode of fromstring is deprecated, as it behaves surprisingly on unicode inputs. Use frombuffer instead [ 513 1027
Note: As mentioned above, fromstring()
should only be used with numerical inputs and not byte strings.
When dtype = np.unit8
, each byte in the byte string is interpreted as an 8-bit unsigned integer. Thus, array1 becomes [1 2 3 4]
.
When dtype = np.unit16
, a byte-pair in byte string is interpreted as a 16-bit unsigned integer.
Thus, array2 has 2 elements \x01\x02
i.e. 2 * 256 + 1 = 513 and \x03\x04
i.e. 4 * 256 + 3 = 1027 and becomes [513 1027]
.
Example 3: Use count Argument to Limit the Data to Read
The count
argument helps specify the number of items to read from the string.
string1 = '1 2 3 4'
import numpy as np
# load the all items from the buffer
array1 = np.fromstring(string1, sep = ' ')
print(array1)
# load the first 3 items from the buffer
array2 = np.fromstring(string1,sep = ' ', count = 3)
print(array2)
# load the first 2 items from the buffer
array3 = np.fromstring(string1,sep = ' ', count = 2)
print(array3)
Output
[1. 2. 3. 4.] [1. 2. 3.] [1. 2.]