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)