如何解决" TypeError:未确定对象的len()"

时间:2016-10-19 21:56:19

标签: python arrays numpy

我得到了:

TypeError:未确定对象的len()

运行以下脚本后

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)
else:
    print('Vectores de diferente dimensión')

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

使用阵列&#39;而是size属性:

nv = v.size
nu = u.size

您可能还想使用numpy.fromstring将输入字符串转换为数组:

>>> 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)
3
>>> v.size
3

答案 1 :(得分:0)

对于我来说,当我遇到以下情况时会发生此错误:

import numpy as np

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

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

要使其正常工作,请确保要压缩的数组包含一个以上的元素。