1. numpy使用
基本用法
- 使用
astype()
方法可以对数组的元素进行转换
t1 = np.array([1,2,3,4], dtypt=np.float)
t2=t1.astype(np.int32) np.arrage(0, 1,0.1)
按0.1步长取0-1,其中不包括尾数1;np.linspace(0,1,10)
取值区间0-1,其中10个数,包括尾数1,步长1/9;np.linspace(0,1,10,endpoint=False)
不包括尾数,步长1/10;logspace()
和linspace()
类似,前者等比,后者等差;
np.logspace(0,2,5)
取值区间100 - 102,个数为5,包括尾数;ones()
,zeros()
创建指定形状和类型的数组;np.full(4, np.pi)
创建一位数组,4个元素,都是3.14159265;np.arange(10
) 创建10个数字,从0-9;- 布尔列表,true为1,false为0
x=np.random.randint(0,10,6)
产生6个随机整数数组
x[x>5]
表示: x中每一个元素进行x>5的判断,判断后会返回True
或False
,x[bool]
会返回表示为True的值; a[None, :]
和a.reshape(-1,1)
等效,a[:, None]
和a.reshape(-1,1)
等效;np.unique(a)
:去除a中重复的元素;x=y if condition else z
等价于x=np.where(condition,y,z)
;- 当嵌套更多where时,可以用
select(condition, choicelist, default=0)
替换,如下例子:
def triangle_wavel(x, c, c0, hc):
x = x - x.astype(np.int)
return np.where(x >=c,
0,
np.where(x < c0,
x/c0*hc,
(c-x)/(c-c0)*hc))
可以更简单的写:
def triangle_wavel(x, c, c0, hc):
x = x - x.astype(np.int)
return np.select([x >= c, x < c0, True], # Ture 表示所有条件都不满足
[0, x/c0*hc, (c-x)/(c-c0)*hc])
- 多维数组拼接
a = np.arange(3) # array([0, 1, 2])
b = np.arange(10,13) # array([10, 11, 12])
np.vstack(a,b) # 沿第0轴拼接
array([[ 0, 1, 2],
[10, 11, 12]])
np.hstack(a, b) # 沿第1轴拼接
array([ 0, 1, 2, 10, 11, 12])
np.colunm_stack((a,b)) # 与hstack类似,沿第1轴拼接
array([[ 0, 10],
[ 1, 11],
[ 2, 12]])
2. Pandas使用
基本用法
- Series是pandas的基本对象,定义了Numpy的ndarray对象的接口,所以,可以用numpy的数据处理函数直接对Series对象进行处理;
- 两个series相加减,会按照相应的index进行加减,无对应index的返回nan;
- DataFrame是数据对象,是一个二维表格;
- 字符串使用了object类型;
- index行索引,columns列索引;