python中怎样把列表变成bytes (python中init方法)

python中怎样把列表变成bytes,python中for的用法

1. 问题

数据连接是数据处理中经常需要用到的操作。Python 常见的数据类型,都应该怎样进行连接呢?

2. 分析

2.1. list

list 的连接是最容易的,直接用 Python 语法即可。

a=[1,2,3]
b=[4,5,6]
c=a+b
print(c)
d=[a,b]
print(d)

输出结果

[1, 2, 3, 4, 5, 6]
[[1, 2, 3], [4, 5, 6]]

2.2. dict

dict 不支持 +。想要合并两个dict,需要用到**操作符。

a={'a':1,'b':2,'c':3}
b={'d':4,'e':5,'f':6}
c={**a,**b}
print(c)

输出结果

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}

如果b里面有a的键值,后面的值会覆盖掉前面的值。

a={'a':1,'b':2,'c':3}
b={'a':4,'e':5,'f':6}
c={**a,**b}
print(c)

输出结果

{'a': 4, 'b': 2, 'c': 3, 'e': 5, 'f': 6}

2.3. set

set 不可 hashable,而且不支持+,所以需要另想办法。

a=set([1,2,3])
b=set([1,5,6])
c=a.union(b)
print(c)
d={itemforiteminlist(a)+list(b)}
print(d)

比如用它的union方法,或者用iterate特性,都可以得出相同的结果

{1, 2, 3, 5, 6}
{1, 2, 3, 5, 6}

2.4. ndarray

ndarray 合并的时候,需要注意坐标轴方向和相应方向大小是否吻合。比如

importnumpyasnp

a=np.array([[1,2,3],[4,5,6]])
b=np.array([[7,8,9],[10,11,12]])
c=np.concatenate((a,b))
print(c)
d=np.concatenate((a,b),axis=1)
print(d)

输出结果

[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]

[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]

或者

a=np.array([[1,2,3],[4,5,6]])
b=np.array([[7,8,9]])
c=np.concatenate((a,b))
print(c)

d=np.array([[7,8]]).transpose()
e=np.concatenate((a,d),axis=1)
print(e)

输出结果

[[1 2 3]
 [4 5 6]
 [7 8 9]]

[[1 2 3 7]
 [4 5 6 8]]

如果是一个 vector 和一个 ndarray 想合并,可以给 vector 增加一个维度

a=np.array([[1,2,3],[4,5,6]])
b=np.array([7,8])
c=b[:,np.newaxis]
d=np.concatenate((a,c),axis=1)
print(d)

输出结果

array([[1, 2, 3, 7],
       [4, 5, 6, 8]])

2.5. DataFrame

DataFrame 比较灵活,可以在各个维度上进行扩展。所以连接的时候需要特别注意方向。

importpandasaspd

a=pd.DataFrame([[1,2,3],[4,5,6]],columns=['a','b','c'])
b=pd.DataFrame([[7,8],[9,10]],columns=['b','d'])
c=pd.concat([a,b],axis=0)
c
d=pd.concat([a,b],axis=1)
d

输出结果

	a	b	c	d
0	1.0	2	3.0	NaN
1	4.0	5	6.0	NaN
0	NaN	7	NaN	8.0
1	NaN	9	NaN	10.0

	a	b	c	b	d
0	1	2	3	7	8
1	4	5	6	9	10

3. 总结

今天我们大致总结了 Python 里面常见数据类型的合并方式。合并是最常见的数据操作之一,应该是熟练掌握的基本功之一。

相关代码均已上传到 Data2Science@Github (https://github.com/jetorz/Data2Science),欢迎标记 Star。

4. 交流

独学而无友则孤陋寡闻。现有「数据与统计科学」微信交流群,内有数据行业资深从业人员、海外博士、硕士等,欢迎对数据科学、数据分析、机器学习、人工智能有兴趣的朋友加入,一起学习讨论。

大家可以扫描下面二维码,添加荔姐微信邀请加入,暗号:机器学习加群。

python中怎样把列表变成bytes,python中for的用法

Lily

5. 扩展

5.1. 延伸阅读

  1. Numpy 中如何对矩阵的特征对排序

5.2. 参考文献

  1. [1]M. Wes, Python for Data Analysis, 2nd. Beijing: O’Reilly, 2017.
  2. [1]J. VanderPlas, Python Data Science Handbook. Beijing: O’Reilly, 2016.

python中怎样把列表变成bytes,python中for的用法

Data2Science