1、创建array :vstack hstack拼接
p1 = np.ones((3, 3))
p2 = np.arange(9).reshape(3, 3)
print('纵向叠加: \n', np.vstack((p1, p2)))
print('横向叠加: \n', np.hstack((p1, p2)))
纵向叠加:
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]
横向叠加:
[[1. 1. 1. 0. 1. 2.]
[1. 1. 1. 3. 4. 5.]
[1. 1. 1. 6. 7. 8.]]
2、pandas 运算操作
2.1 .dot
print('p1.p2 = \n', p1.dot(p2))
p1:
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
p2:
[[0 1 2]
[3 4 5]
[6 7 8]]
p1.p2 =
[[ 9. 12. 15.]
[ 9. 12. 15.]
[ 9. 12. 15.]]
2.2 转置 .dot
p3 = np.arange(6).reshape(2, 3)
print('p3形状: ', p3.shape)
print(p3)
p4 = p3.T
print('转置后p3形状: ', p4.shape)
print(p4)
p3形状: (2, 3)
[[0 1 2]
[3 4 5]]
转置后p3形状: (3, 2)
[[0 3]
[1 4]
[2 5]]
2.3 类型赋值 astype
print('p3数据类型:', p3.dtype)
print(p3)
p5 = p3.astype('float')
print('p5数据类型:', p5.dtype)
print(p5)
p3数据类型: int32
[[0 1 2]
[3 4 5]]
p5数据类型: float64
[[0. 1. 2.]
[3. 4. 5.]]
2.4 索引 a.argmax() a.argmin()
a = np.array([-4, -2, 1, 3, 5])
print('argmax: ', a.argmax())
print('argmin: ', a.argmin())
argmax: 4
argmin: 0
3 切片操作
3.1特定坐标
s = np.arange(13) ** 2
print('s: ', s)
print('s[[0, 2, 4]]: ', s[[0, 2, 4]])
s: [ 0 1 4 9 16 25 36 49 64 81 100 121 144]
s[[0, 2, 4]]: [ 0 4 16]
注释:
from numpy.random import randn
之后可以直接饮用randn
df = DataFrame(randn(5,2),index=range(0,10,2),columns=list('AB'))
3.2 iloc loc
也就是说loc是根据index来索引,比如下边的df定义了一个index,那么loc就根据这个index来索引对应的行。iloc并不是根据index来索引,而是根据行号来索引,行号从0开始,逐次加1。
from pandas import Series,DataFrame
from numpy.random import randn
import numpy as np
df = DataFrame(randn(5,2),index=range(0,10,2),columns=list('AB'))
print(df.iloc[[2]])
print(df.loc[[2]])
A B 4 -0.166014 1.906989 A B 2 -0.081267 -0.113791