How to construct a ndarray from a numpy array? python
Solution 1
An ndarray
is a NumPy array.
>>> x = np.array([1, 2, 3])
>>> type(x)
<type 'numpy.ndarray'>
The difference between np.ndarray
and np.array
is that the former is the actual type, while the latter is a flexible shorthand function for constructing arrays from data in other formats. The TypeError
comes your use of np.array
arguments to np.ndarray
, which takes completely different arguments (see docstrings).
Solution 2
Though the accepted response is correct, that didn't help me actually create a 1-dimensional array of arrays.
As this thread is the first answer at Google, I post my work around, even if it isn't elegant solution (please don't hesitate to point one out to me):
import numpy as np
# Create example array
initial_array = np.ones(shape = (2,2))
# Create array of arrays
array_of_arrays = np.ndarray(shape = (1,), dtype = "object")
array_of_arrays[0] = initial_array
Be aware that array_of_arrays
is in this case mutable, i.e. changing initial_array
automatically changes array_of_arrays
.
Comments
-
alvas almost 4 years
I can't seem to convert it into an
ndarray
in numpy, i've read http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html but it didn't show me how i can convert my input data as shown below into anndarray
.How to construct a ndarray from a numpy array or a list of integer lists? *What's the difference between ndarray and array?* I could just use an
array
type right?I have a list of integer counts like this
[[1, 2, 4, 1, 5], [6, 0, 0, 0, 2], [0, 0, 0, 1, 0]]
And i manage to use this code to create a
np.array
as shown in http://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html#numpy.arrayimport numpy as np x = [[1, 2, 4, 1, 5], [6, 0, 0, 0, 2], [0, 0, 0, 1, 0]] print np.array(x)
[out]:
[[1 2 4 1 5] [6 0 0 0 2] [0 0 0 1 0]]
But I can't change it into a
np.ndarray
with this code:import numpy as np x = [[1, 2, 4, 1, 5], [6, 0, 0, 0, 2], [0, 0, 0, 1, 0]] print np.ndarray(x)
I got an error:
Traceback (most recent call last): File "/home/alvas/workspace/sklearntut/test.py", line 7, in <module> print np.ndarray(x) TypeError: an integer is required
How do I create a np.ndarray with the list of integer counts i've got? What integer is the TypeError talking about?
-
taras almost 6 yearsThere is another way to one more dimension, you can use
numpy.expand_dims
, example:np.expand_dims(initial_array, axis=0)
-
NoName over 4 yearsSo why didn't
np.ndarray(x)
work? Both np.ndarray and np.array's first parameter is shape.