I am not sure why I am getting this error, and what it means. When I run the test, i get the expected results, and the additional error.
I was working on the split_dataset(X, node_indices, feature) function.
ValueError: operands could not be broadcast together with shapes (7,) (4,)
Hi @gaolatlhe !
It seems that numpy tried to do an operation on arrays that were not compatible in size.
1: What is broadcasting?
Broadcasting describes how NumPy treats arrays with different shapes during arithmetic operations.
2: What are the conditions for Broadcasting?
Two dimensions are compatible when:
1: They are equal, or
2: one of the dimensions is 1
In your example you have a dimension that is 7 and 4 which is incompatible.
For more information on broadcasting see: Broadcasting — NumPy v1.24 Manual
Hope this helps!
thanks for the explanation on broadcasting.
I had tried to create the function using enumerate and it did not work and I am still not clear why it did not work. I understand the shapes did not match but i cant visualise why the shapes differed. I ended up working my head out using the hint format using for i in node_indices.
I am still not clear how the 2 approaches differ and why the other does not work while the other does?
@gaolatlhe, so you have a working version and a non-working version of the code? If so, you might send both of them to me via a private message (click my profile, and hit Message), and I can take a look and try to explain.
Cheers,
Raymond
1 Like
Hi @gaolatlhe
It is possible to make the code work with enumerate.
Consider the two methods:
for i in node_indices:
# and
for idx, val in enumerate(node_indices):
what is i?
what is idx and val?
which one of idx or val is the same as i?
1 Like