[Solved] How to fix “TypeError: len() of unsized object”

I am getting:

TypeError: len() of unsized object

after running the following script:

from numpy import *

v=array(input('Introduce un vector v: '))
u=array(input('Introduce un vector u: '))

nv= len(v)
nu= len(u)

diferenza= 0; i=0

if nv==nu:

    while i<nv:
        diferenza=diferenza + ((v[i+1]-u[i+1]))**2

    modulo= sqrt(diferenza)
    print('Distancia', v)
    print('Vectores de diferente dimensión')

How can I fix this?

Solution #1:

Use the arrays’ size attribute instead:

nv = v.size
nu = u.size

You also probably want to use numpy.fromstring to take and convert the input string into an array:

>>> v = np.fromstring(input('enter the elements of the vector separated by comma: '), dtype=int, sep=',')
enter the elements of the vector separated by comma: 1, 2, 3
>>> v
array([1, 2, 3])
>>> len(v)
>>> v.size
Respondent: Moses Koledoye

Solution #2:

For me this error occurred when I had the following situation:

import numpy as np

arr = np.array([[1]])

arr_squeezed = arr.squeeze()
len(arr_squeezed)  # TypeError: len() of unsized object

For this to work properly, make sure that array you’re squeezing contains more then one element.

Respondent: ptyshevs

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Most Popular

To Top
India and Pakistan’s steroid-soaked rhetoric over Kashmir will come back to haunt them both clenbuterol australia bossier man pleads guilty for leadership role in anabolic steriod distribution conspiracy