Numpy笔记

@2015-8-31

Random

ref

np.random.random_integer(5,size=(4,5))

np.random.randint(5,size=(4,5))

np.random.random([4,5])

choice⇔RandomChoice

mat=np.random.choice(f1,16)

bytes⇔ByteCount

ranf

permutation返回一个随机排列

ref2

strides

Numpy笔记_1.png

为什么是4?strides返回的是字节数

Numpy笔记_2.png

那么这里的第一个数16表示的是4*4=16字节,那么第2个数4怎么理解呢?

dtype 支持的数字类型有:


######################    ***********************************
bool_    占一个字节的布尔类型(True/False)
int_    默认的整数类型
intc    与 C int 相同,通常为 int32 或 int64
intp    用于索引的整数(同 C ssize_t,int32 或 int64)
int8、16、32、64    不同位数的整数
uint8、16、32、64    不同位数的无符号整数
float_    float64
float16、32、64    不同位数的浮点数
complex_    complex128
complex64、128    不同位数的复数

array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)

#####################    *************************************************
asarray    将输入转换为 ndarray,若输入本身是 ndarray 就不复制
arange    类似于内建 range 函数,不过返回的是一个一维 ndarray
ones、ones_like    根据指定形状和 dtype 创建一个全 1 数组
zeros、zeros_like    根据指定形状和 dtype 创建一个全 0 数组
empty、empty_like    创建新数组,但只分配内存空间不赋值
eye、identity    创建一个正方的N×N单位矩阵(对角线为1,其余为0)

.astype(dtype)

sort

Numpy笔记_3.png

默认按行排序,效果跟参数1一样,参数为0时按列排序,参数为-1表示最外层的轴,这里只有2维,因此跟1的效果是一样的

min,max    最小值和最大值
argmin,argmax    最小值和最大值的索引

用于布尔型数组的方法
有两个方法 .any() 和 .all() 可以用于判断某个数组中是否存在或全部为 True。这两个方法也同样支持 axis 轴向参数:

Numpy笔记_4.png

实例中因为有一个0,bool(0)==False

真正的问题在于不同大小的数组间运算时会发生什么。广播(broadcasting)指的是不同形状的数组之间的算数运算的执行方式,这也是 Numpy 的核心内容之一。

广播遵循的原则为:如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符或其中一方的长度为 1,则认为它们是广播兼容的。广播会在缺失和(或)长度为 1 的维度上进行。

Numpy笔记_5.png

这里::4表示的是一种省略写法,相当于0:3:1,其中1是间隔step

Numpy笔记_6.png

mat[mat%2==0]

布尔型索引

花式索引(fancy indexing)是一个 Numpy 术语,它指的是利用整数数组进行索引,这里的整数数组起到了index的作用。

Numpy笔记_7.png

一些函数

一元函数

abs,fabs    整数、浮点、复数的绝对值,对于非复数,可用更快的 fabs
sqrt    平方根,等于 arr**0.5
square    平方,等于 arr**2
exp    以 e 为底的指数函数
log,log10,log2,log1p    以 e 为底的对数函数
sign    计算各元素的正负号,1(正),0(零),-1(负)
ceil    计算大于等于该值的最小整数
floor    计算小于等于该值的最大整数
rint    round int,四舍五入到整数
modf    将数组的整数和小数部分以两个独立数组的形式返回
isnan    返回一个 "哪些值是 NaN" 的布尔型数组
isfinite,isinf    返回是否是有穷(无穷)的布尔型数组
arccos,arccosh...等同上    反三角函数
logical_not    计算个元素 not x 的真值,等于 -arr
unique    计算元素唯一值并返回排序后的结果

二元函数

add    加法,+
subtract    减法,-
multiply    乘法,*
divide,floor_divide    除法和地板除,/ 和 //
power    乘方,**
maximum,fmax    元素级最大值,fmax 将忽略 NaN
minimum,fmin    同上
mod    取模,%
copysign    将第二数组元素的符号复制给第一数组
greater(_equal),less(_equal),(not_)equal    字面意义,返回布尔数组
logical_and,logical_or,logical_xor    字面意义,返回布尔数组

三元函数

where(condition, [x, y])