这是我参与更文挑战的第1天,活动详情查看:更文挑战
本系列文章目前计划是先更新pandas,期间会有些具体的案例会一起讲解。
pandas之后应该会将sql和pandas两个技术做个比较。然而在本节,我们先回顾下常用的numpy。之后的代码会用到。
1. numpy的生成
- 最简单的方式——直接指定值
import numpy as np
np.array([1, 2, 3])
复制代码
输出:array([1, 2, 3])
-
生成等差序列
-
包含终止项
-
np.linspace(1,5,3) # 起始、终止、数组长度
复制代码
输出:array([1., 3., 5.])
注意:这里面虽然恰好都是整数,但会被转化为浮点数。
-
- 不包含终止项
np.arange(1,5,2) # 起始、终止、数组长度
复制代码
输出:array([1, 3])
2. 特殊矩阵
-
np.zeros 生成都是0的矩阵(用的可能不多)
-
np.eye(3) 生成3行3列的单位矩阵
-
填充矩阵
np.full((6,5), 10)
复制代码
np.full((6,5), [1, 2, 3])
复制代码
np.full((6,5), [1, 2, 3, 4, 5])
复制代码
综上所述:np.full函数根据列值进行填充,如果两个参数列值不相等,那么除非第二个参数列值为1,否则均不可填充
3. 数组的变形与合并
- 数组的转置
import numpy as np
arr = np.full((6, 5), [1, 2, 3, 4, 5])
print(arr)
arr.T
复制代码
// 输出为
[[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]]
array([[1, 1, 1, 1, 1, 1],
[2, 2, 2, 2, 2, 2],
[3, 3, 3, 3, 3, 3],
[4, 4, 4, 4, 4, 4],
[5, 5, 5, 5, 5, 5]])
复制代码
- 数组的合并 np.r_ , np.c_
import numpy as np
print(np.r_[np.array([0,0]),np.zeros(2)])
print(np.c_[np.array([1,2]),np.zeros(2)])
print(np.r_[np.array([[0,0],[1,1]]),np.array([[2,2],[3,3]])])
复制代码
请看以上代码,输出为:
[0. 0. 0. 0.]
[[1. 0.]
[2. 0.]]
[[0 0]
[1 1]
[2 2]
[3 3]]
复制代码
那么很明显,为什么输出的规则不一致呢,对于一维数组,np.r_和np.c_的合并规则好像反了过来,经过反复验证和百度(其实重点是百度),发现是由于numpy存一维数组时会将其以列向量的方式存储。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END