列表到数组的转换以使用ravel()函数


109

我在python中有一个列表,我想将其转换为数组以能够使用ravel()函数。


2
请尝试回答要求的澄清问题并改善您的问题,而不是产生很多不太好的问题。最后,请仔细阅读此答案。我认为这可以解决您的大问题...
jorgeca

Answers:


237

用途numpy.asarray

import numpy as np
myarray = np.asarray(mylist)

25
其实myarray = np.array(mylist)应该足够了。
fgb

11
好吧,asarray比较安全,因为它不会复制数组,而只是将它们返回,所以除非有必要确保原始数据的副本,否则使用它是一个好习惯
EnricoGiampieri

1
@EnricoGiampieri,很公平,但是无论如何,您是否不需要从中获取数组?我想我不会遵循您不会获得任何命令来生成新数组对象的方式。
fgb

这两个命令都将从列表开始创建一个新数组,这是肯定的,但通常的重点是将输入转换为特定格式以应用某些方法,这更像是OP的情况。除非确定需要新副本,否则使用asarray是一个好习惯。只需键入array就足够了,但是为什么在我们在这里的同时,让OP养成良好的习惯呢?
EnricoGiampieri 2013年

我只是想说@fgb提出了一个适当的解决方案。“ .asarray”函数返回一个numpy对象,而“ .array”直接返回一个数组。无论如何,感谢你们两个!
Adrian Grzywaczewski

7

创建一个int数组和一个列表

from array import array
listA = list(range(0,50))
for item in listA:
    print(item)
arrayA = array("i", listA)
for item in arrayA:
    print(item)

“ i”代表什么?而str应该是什么呢?
Dany Y

6

我想要一种无需使用额外模块即可执行此操作的方法。首先将列表转换为字符串,然后追加到数组:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)

无法编辑错字:第一行应该是dataset_list = ';'.join(input_list)
Alex Poca

2

如果您只想ravel在自己的(嵌套,我要摆姿势?)列表上打电话,则可以直接执行此操作,numpy将为您进行转换:

L = [[1,None,3],["The", "quick", object]]
np.ravel(L)
# array([1, None, 3, 'The', 'quick', <class 'object'>], dtype=object)

另外值得一提的是,你不必去通过numpy所有


-1

使用以下代码:

import numpy as np

myArray=np.array([1,2,4])  #func used to convert [1,2,3] list into an array
print(myArray)

-13

如果变量b有一个列表,则只需执行以下操作:

创建一个新变量“ a”为:a=[] 然后将列表分配给“ a”为:a=b

现在“ a”在数组中具有列表“ b”的所有组件。

因此您已成功将列表转换为数组。


8
实际上,不...这是完全错误的。您将拥有的只是指向同一列表的两个变量,而不是numpy数组。
Ajean 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.