Joel Goldstick wrote: > On Tue, Jan 5, 2016 at 3:45 PM, Robert <rxjw...@gmail.com> wrote: >> import numpy as np >> >> In [154]: np.sum(expectation_A)[0] >> […] >> IndexError: invalid index to scalar variable. > > I've not used numpy, but you should print expectation_A to see what's in > it. It may be empty, causing the index.
Did you mean “IndexError” instead of “index”? > It may be that expectation_A is an integer, not a list Please think about this again. | $ python3 | Python 3.4.4 (default, Dec 21 2015, 09:19:42) | [GCC 5.3.1 20151219] on linux | Type "help", "copyright", "credits" or "license" for more information. | >>> import numpy | >>> print(numpy.sum.__doc__) | | Sum of array elements over a given axis. The problem is instead that np.sum(…) *returns* a scalar value (as expected from a summation method when passed only scalar values) and _not_ a list (insofar the error message is misleading; there is no scalar *variable* causing the problem, but a scalar return *value*): | Parameters | ---------- | a : array_like | Elements to sum. | […] | | Returns | ------- | sum_along_axis : ndarray | An array with the same shape as `a`, with the specified | axis removed. If `a` is a 0-d array, or if `axis` is None, a | scalar is returned. If an output array is specified, a reference | to `out` is returned. | | […] | | Examples | -------- | >>> np.sum([0.5, 1.5]) | 2.0 | `---- So you cannot use the index notation with the *return* value. Try e.g. 42[0]; it does not work because it does not make sense. It is more likely that the index notation was misplaced: np.sum(expectation_A[0]) would make sense if the first element of the iterable referred to by “expectation_A” were a numeric scalar or a reference to a list. Please trim your quotes to the relevant minimum. -- PointedEars Twitter: @PointedEars2 Please do not cc me. / Bitte keine Kopien per E-Mail. -- https://mail.python.org/mailman/listinfo/python-list