@spiritnotes
2016-08-05T15:51:11.000000Z
字数 3258
阅读 1785
读书笔记
Python
DOING
来自bit.ly的1.usa.gov数据
通用同构多维容器
属性:shape、dtype、ndim
构造:序列或者嵌套序列 np.array(seq)
np.zeros(...) / np.empty(...) / np.ones(...)
np.arange(...) range返回格式为array
.asarray 如果本身为array则不复制
ones_like, zeros_like, empty_like 以另一个array的类型和维度做为创建参数
eye、identity 单位矩阵
astype 转换array类型,可以使用float将字符串转为float,总会创建新数组
大小相等的数组之间的任何算术运算都会将运算应用到元素级
数组与标量之间的算术运算也会将哪个标量传播到各个元素
数组切片是原始数组的视图,视图上任何修改都会直接反映到源数组上;标量值和数组都可以被赋值给切片;
arr1d[5],arr1d[5:8]
arr2d[0][2], arr2d[0,2]
np.random.randn(...) 产生正态分布的随机数据
names == 'Bob'
data[names=='Bob']
data[names=='Bob', :2]
data[-(names=='Bob')]
mask = (names=='Bob') | (names=='Will')
布尔型索引总是创建数据的副本?
利用整数数组进行索引,负数表示向后数
arr[[1,2,3],[3,2,1]]不能符合预期,要采用arr[np.ix_([1,2,3],[3,2,1])]/arr[[1,2,3]][:,[3,2,1]]
类型 | 形式 | 可赋值 | 视图? |
---|---|---|---|
索引 | arr[5][8] | 标量、数组 | 视图 |
切片 | arr[:2] [:,2] [:2,:3] | 标量、数组 | 视图 |
布尔索引 | data[data<0] | 标量、数组 | 视图? |
花式索引 | data[[1,2,3]] | 标量、数组 | 复制 |
arr.T
arr.transpose(...)
arr.swapaxes(...)
均是返回视图
abs\fabs\sqrt\square\exp\log\log10\log2\log1p
sign\ceil\floor\rint\modf\isnan\isfinite\isinf
cos\cosh\sin\sinh\tan\tanh
arccos\arccosh\arcsin\arcsinh\arctan\arctanh\logical_not
二元
add\subtract\multiply\divide\floor_divide\power
maximum\fmax\minimum\fmin\mod\copysign
greater\greater_equal\less\less_equal\equal\not_equal\logic_and\logic_or\logic_xor
np.meshgrid接受两个一维数组,产生两个二维矩阵
np.where(cond, xarr, yarr),后面两个参数其中一个可以为标量
result = 1*(cond1-cond2) + 2*(cond2 & -cond1) + 3*-(cond1 | cond2)
sum mean std var min max argmin argmax cumsum sumprod
(arr > 0).sum()
bools.any()
ints.all()
arr.sort(index) 原地排序
np.unique(arr)
np.in1d(arr, [x,y]) 成员资格
unique(x) intersect1d(x, y) union1d(x, y) in1d(x, y) setdeff1d(x, y) setxor1d(x, y)
np.save np.load np.savez
x.dot(y) np.dot(x,y)
np.linalg.inv
diag dot trace det eig inv pinv qr svd solve lstsq
np.random
seed permitation shuffle rand randint randn binomial normal beta chisquare gamma uniform
series = Series([...], index=[...])
series.values 数组表示形式
series.index 索引对象
索引 series['d'], series[['a','b','d']]
赋值 series['d']=1, series[['a','b','c']]=[1,2,3]
运算 series[series>0], series+2, np.exp(series)
成员 'b' in series
字典创建 series = Series({'a': 1, 'c':2}, index=)
如果index中的查找不到,则为NaN
pd.isnull(series) pd.notnull(series)
算术运算中会自动对齐不同索引
series.name
series.index.name
索引可以通过赋值的方式就地修改 series.index=['a',...]
是表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值),既有行索引也有列索引,可以看着由Series组成的字典(共用同一个索引)