之前写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 np
i = 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= )