之前写smith-waterman的时候用到了np.zeros((x,y)),但是pd还没有系统的了解过,所以这次就系统地学习一下吧。
一、理解python中数据类型
注意⚠️:以下都是我自己的个人理解,不代表完全正确。
对于数据类型,python的列表中可以存储不同的数据类型
i = [1,2,3.1,4,555,'666','hello']print(i)
[1, 2, 3.1, 4, 555, '666', 'hello'][Finished in 0.1s]
这样做的好处是对于输入者本身很方便,增加了易用性,但是你的易用是来自于机器做的更多的工作,python需要存储每个数据的数据类型,这样会加大python的运行负担。
使用numpy创建数组的一个好处是创建的所有数组都是同一种数据类型,即使你给出的是不同数据类型,numpy也会把他们变成同一种数据类型,这样可以保证数据的一致性,也可以提高运行效率。
import numpy as npi = np.array(['1',2,3.14],dtype = int)#全部转化为整数print(i)i2 = np.array(['1',2,3.14],dtype = str)#全部转化为字符串print(i2)i3 = np.array(['1',2,3.14],dtype = float)#全部转化为浮点数print(i3)#数组必须是同种数据类型,不然会被转换为同一种j = np.array([3.14,4,5,3,2])print(j)j2 = np.array(['1','2',2,3,4,3.14])print(j2)#如果你想明确指定哪种数据类型,可以用dtype指定数据类型k = np.array([1,2,3,4],dtype = 'float32')print(k)
[1 2 3]['1' '2' '3.14'][1. 2. 3.14][Finished in 0.2s][3.14 4. 5. 3. 2. ]['1' '2' '2' '3' '4' '3.14'][1. 2. 3. 4.]
1.1创建整型数组:np.array()
list可以是横向也可以是纵向的。
#创建数组i = np.array([1,4,3,5,3])print(i)i = np.array([1,2,3,4])print(i)#不仅可以组成一维数据,也可以制作多维数据。m = np.array([range(i,i+3) for i in [2,4,6]])print(m)#使用python列表创建数组t = ['niha','333',444,3.1415,]t2 = np.array(t)print(t2)
[1 4 3 5 3][1 2 3 4][[2 3 4][4 5 6][6 7 8]]['niha' '333' '444' '3.1415']
1.2、从头创建数组np.zeros((x,y),dtype = )
#创建初始值为0的数组i0 = np.zeros(10,dtype = int)print(i0)#创建一个2*2阶的矩阵。i1 = np.zeros((2,2),dtype = float)print(i1)
[0 0 0 0 0 0 0 0 0 0][[0. 0.][0. 0.]]
1.3、创建一个全部为1的数组np.ones((x,y),dtype= )
