python numpy array 的一些问题

1 将list转换成array

如果list的嵌套数组是不规整的,如

a = [[1,2], [3,4,5]]

则a = numpy.array(a)之后

a的type是ndarray,但是a中得元素a[i]都还是list

如果a = [[1,2], [3,4]]

则a = numpy.array(a)之后

a的type是ndarray,里面的元素a[i]也是ndarray

 

2 flatten函数

Python自身不带有flatten函数,numpy中array有flatten函数。

同1的一样,如果a是不规整的,则flatten函数失效

可以自己写一个函数

def flat(list_tree):
    res = []
    for i in list_tree:
        if isinstance(i, list):
            res.extend(flat(i))
        elif isinstance(i, np.ndarray):
            res.extend(flat(i.tolist()))
        else:
            res.append(i)
    return res

 

3 并行遍历两个数组

内置的zip函数可以让我们使用for循环来并行使用多个序列。在基本运算中,zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。

示例一:

L1 = [1,2,3,4]

L2 = [5,6,7,8]

要合并这些列表中的元素,可以使用zip来创建一个元组对的列表。与range一样,zip是一个可迭代对象,因此,必须将其包含在一个list调用中一边一次性显示所有结果。

zip(L1,L2)

list(zip(L1,L2)) !注释掉这一行,运行结果依然如次

for (x,y) in zip(L1,L2):

       print(x,'+',y,'=',x + y)

posted on 2015-12-20 21:26  月下之风  阅读(2202)  评论(0编辑  收藏  举报

导航