Writing 32d-ndarray to to excel

hi all,
I want to write ndarray to excel file and then want to plot a graph, i m getting an error that my ndarray is 32d and required one is 1 dimension or 2 dimension to write into excel file.I m not able to convert 32d nd array to 1d or 2d, neither able to write it on excel sheet.
Any suggestion ?? pls help.

Hi @dimple,

Do you want to write an NDArray of shape (32, n) or (dim0, dim1, ..., dim31)?

Can you give us a link or paste the snippet and the error?

hi spanev,

i m having ndarray of this type,
<NDArray 1 @cpu(0)>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

When i m trying to write this on excel file using “np.savetxt(‘one.csv’,knee_angle,delimiter=’,’, fmt=’%darray’)” then getting this error:

“Expected 1D or 2D array, got %dD array instead” % X.ndim)
ValueError: Expected 1D or 2D array, got 32D array instead"


how about array.squeeze() ? https://mxnet.incubator.apache.org/api/python/ndarray/ndarray.html#mxnet.ndarray.squeeze

hi olivcruche,
thanks , bt when using “np.squeeze(knee_angle,axis=(0,1))”, getting this error,

“Expected 1D or 2D array, got %dD array instead” % X.ndim)
ValueError: Expected 1D or 2D array, got 30D array instead.

Or when using ,“np.squeeze(knee_angle)”
“Expected 1D or 2D array, got %dD array instead” % X.ndim)
ValueError: Expected 1D or 2D array, got 0D array instead"

Or when using ,np.savetxt(‘g.csv’,mx.ndarray.squeeze(knee_angle),delimiter=’,’, fmt=’%darray’)
Getting this error, print(mx.ndarray.squeeze(knee_angle))
File “”, line 39, in squeeze
AssertionError: Positional arguments must have NDArray type, but got [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
<NDArray 1 @cpu(0)>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

please help !! i need to plot graph for knee_angle.

could you write here the format of the array? I see
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[-1]<NDArray 1 @cpu(0)>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] above so are you trying to save a single number to excel?

@hi olivier
actually its just a dummy value , that i have calculated for knee_angle in radian(for static image). This is the format(stated above) in which i m getting my data, want to convert this into 1d or 2d so i can write it in my excel sheet.
Further i will be having so many knee_angle values, that need to be stored in excel sheet.
First i want to write this data on excel , but getting an error.

ok, turned out the command you need is a .flatten(). Find below a working test I did with an array that has the above-provided shape:

import mxnet as mx
from mxnet import ndarray as nd
import pandas as pd

# create 32d nested single-value array

knee = nd.array([-1])

for _ in range(31):
    knee = knee.expand_dims(axis=0)

# save to excel through numpy and pandas
pd.DataFrame(knee.flatten().asnumpy()).to_excel('data.xlsx')  # save with index and columns header
pd.DataFrame(knee.flatten().asnumpy()).to_excel('data_raw.xlsx', index=False, header=None)  # save only the value
1 Like

Thank you @olivcruche, with few changes i m able to save that.
bt how to append data in already existing file.

pd.DataFrame(knee.flatten().asnumpy()).to_excel(‘data.xlsx’), what changes should i made in this.

Thank you