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)

上一篇:linux开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录


下一篇:BZOJ4140 : 共点圆加强版