【问题标题】:Python Lists and tuplesPython 列表和元组
【发布时间】:2017-12-06 20:55:23
【问题描述】:

有什么区别

[439 301 481 194 208 415 147 502 333  86 544 353 229]

[439, 301, 481, 194, 208, 415, 147, 502, 333,  86, 544, 353, 229]

当我尝试时

sent = sent[np.newaxis,:]

在第二个数组上,它给了我以下错误:

File "Mymain.py", line 200, in <module>
    sent = sent[np.newaxis,:]
TypeError: list indices must be integers or slices, not tuple

【问题讨论】:

  • [ ... ] 不会自动为您提供 numpy 数组。 numpy 是一个 third-party 附加组件,用于以您(显然)在 Matlab 中习惯的方式处理数组。 [ ... ] 本身为您提供了一个基本的 Python list,它的技巧更少。将您的 list 转换为带有 numpy.array( [ ... ]) 的 numpy 数组
  • 这显然缺乏上下文。您可以通过编写[1, 2, 3] 来定义一个列表,但[1 2 3] 不是一个有效的语法。第一行是从哪里来的?
  • 我喜欢 python,因为错误非常易读(不仅仅是程序!)。所以你的错误说列表(sent)索引(np.newaxis,:)必须是整数或切片而不是元组(np.newaxis,)。删除sent = sent[np.newaxis,:]中的,。假设您以正确的方式完成了其他所有操作(例如找出 np.array 和 python list 之间的区别等),它应该可以正常工作。
  • 缺少逗号表明第一行是一个numpy数组的打印。第二个可能是一个列表。适用于数组的索引通常不适用于列表。

标签: python python-3.x numpy


【解决方案1】:

问题是您正在尝试发送一个作为 python 列表的数组。首先,您需要将其转换为 nampy 数组。

import numpy as np 

py_list = [439, 301, 481, 194, 208, 415, 147, 502, 333,  86, 544, 353, 229]
convert_numpy = np.array(py_list )
sent = sent[np.convert_numpy,:]

对于第一行[439 301 481 194 208 415 147 502 333 86 544 353 229],您需要添加逗号来分隔值。

【讨论】:

    【解决方案2】:

    基本上就是一个numpy数组和一个python列表。

    试试:

    import numpy as np 
    a = [1,2,3]
    b = np.array(a)
    print(a,b)
    

    您可以在此处找到更多信息 http://www.numpy.org/

    【讨论】:

      【解决方案3】:

      据我所知,sent[np.newaxis, :] 是一种 numpy 数组语法。

      因此,您希望 sent 成为 numpy.array,但事实并非如此。 如错误所述:list indices must be integers or slices, not tuplesent 是一个列表。由于np.newaxis, : 是一个元组,Python 会给你这个错误。

      您需要将sent 定义为一个数组。 为此,您可以将其从列表转换为数组:

      sent = np.array(sent)
      

      【讨论】:

        【解决方案4】:

        尝试type 来检查是什么:

        a=[439, 301, 481, 194, 208, 415, 147, 502, 333,  86, 544, 353, 229]
        type(a)
        

        结果是:

        <type 'list'>
        

        使用以下方法将您的列表转换为 np.array:

        import numpy as np
        sent = np.array(sent)
        

        错误就会消失。

        【讨论】:

          猜你喜欢
          • 2019-01-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-21
          • 2011-01-15
          • 2013-02-23
          • 2020-05-12
          相关资源
          最近更新 更多