5索引迭代
索引 有三种可用的索引方法类型: 字段访问,基本切片和高级索引 所有的索引方式都是在方括号内。 :表示切片 ,表示高维度索引 [][]表示递归索引,对索引结果再次索引。 字段访问ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。 ndarray 数组可以基于 0 - n 的下标进行索引。 12345import numpy as np a = np.arange(10)s = slice(2,7,2) # 从索引 2 开始到索引 7 停止,间隔为2print (a[s]) 基本切片切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。 基本切片语法是 i:j:k,其中 i 是起始索引,j 是停止索引,k 是步骤(k\neq0)。这将选择具有索引值(在相应的维度中)i, i+k, …, i+(m-1) k 的 m 个元素, 12345import numpy as np a = np.arange(10) b = a[2:7:2] #...
4创建数组
填充创建 方法 描述 empty(shape[, dtype, order]) 返回给定形状和类型的新数组,而无需初始化条目。 empty_like(prototype[, dtype, order, subok, …]) 返回形状和类型与给定数组相同的新数组。 eye(N[, M, k, dtype, order]) 返回一个二维数组,对角线上有一个,其他地方为零。 identity(n[, dtype]) 返回标识数组。 ones(shape[, dtype, order]) 返回给定形状和类型的新数组,并填充为1。 ones_like(a[, dtype, order, subok, shape]) 返回形状与类型与给定数组相同的数组。 zeros(shape[, dtype, order]) 返回给定形状和类型的新数组,并用零填充。 zeros_like(a[, dtype, order, subok, shape]) 返回形状与类型与给定数组相同的零数组。 full(shape, fill_value[, dtype, orde...
8位运算
二进制运算逐元素位操作 方法 描述 bitwise_and(x1, x2, /[, out, where, …]) 按元素计算两个数组的按位与。 bitwise_or(x1, x2, /[, out, where, casting, …]) 按元素计算两个数组的按位或。 bitwise_xor(x1, x2, /[, out, where, …]) 按元素计算两个数组的按位XOR。 invert(x, /[, out, where, casting, order, …]) 按元素计算按位求逆,或按位求非。 left_shift(x1, x2, /[, out, where, casting, …]) 将整数的位向左移动。 right_shift(x1, x2, /[, out, where, …]) 向右移整数的位。 打包二进制 方法 描述 packbits(a[, axis, bitorder]) 将二进制值数组的元素打包为uint8数组中的位。 unpackbits(a...
7数组操作
数组处理程序 主要对数组本身的进行更改。并不是进行运算。 复制数组 方法 描述 copyto(dst, src[, casting, where]) 将值从一个数组复制到另一个数组,并根据需要进行广播。 改变形状 方法 描述 reshape(a, newshape[, order]) 在不更改数据的情况下为数组赋予新的形状。 ravel(a[, order]) 返回一个连续的扁平数组。 ndarray.flat 数组上的一维迭代器。 ndarray.flatten([order]) 返回折叠成一维的数组副本。 转置数组 方法 描述 moveaxis(a, source, destination) 将数组的轴移到新位置。 rollaxis(a, axis[, start]) 向后滚动指定的轴,直到其位于给定的位置。 swapaxes(a, axis1, axis2) 互换数组的两个轴。 ndarray.T 转置数组。 transpose(a[, axes]) 排列数组的尺寸。 更改维度数 方法 描述 ...
6广播机制
广播广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。 低纬度向高维度广播。低纬度在高维度方向上复制。 123456789101112131415import numpy as np a = np.array([[ 0, 0, 0], [10,10,10], [20,20,20], [30,30,30]])b = np.array([1,2,3])bb = np.tile(b, (4, 1)) # 重复 b 的各个维度print(a + bb)输出结果为:[[ 1 2 3] [11 12 13] [21 22 23] [31 32 33]] 广播原则广播的规则: 让所有输入数组都向其中形状最长的数组看齐,形状中不足的部分都通过在前面加 1 补齐。 输出数组的形状是输入数组形状的各个维度上的最大值。 如果输入数组的某个维度和输出数组的对应维度的长度相同或者其长度为 1 时,这个数组能够用来计算,否则出错。 当输入数组的某个维度的...
9字符串运算
字符串操作numpy.char 模块为类型 numpy.string_ 或的数组提供了一组向量化的字符串操作numpy.unicode_。它们全部基于Python标准库中的字符串方法。 字符串操作 方法 描述 add(x1, x2) 返回两个str或unicode数组的按元素的字符串连接。 multiply(a, i) 返回(a * i),即按元素方式的字符串多重连接。 mod(a, values) 返回(a%i),这是Python 2.6之前的字符串格式(迭代),针对一对str或unicode的array_likes元素。 capitalize(a) 返回的拷贝一个只有资本的每个元素的第一个字符。 center(a, width[, fillchar]) 返回的拷贝一与在长度的字符串居中其元素宽度。 decode(a[, encoding, errors]) 按元素调用str.decode。 encode(a[, encoding, errors]) 逐元素调用str.encode。 expandtabs(a[, tabsize]) 返回每...
10函数式编程
itertools — 为高效循环而创建迭代器的函数 算法编程这一块特别好用。本模块标准化了一个快速、高效利用内存的核心工具集,这些工具本身或组合都很有用。它们一起形成了“迭代器代数”,这使得在纯Python中有可能创建简洁又高效的专用工具。 Itertool函数itertools 配方 functools — 高阶函数和可调用对象上的操作partial 对象 operator — 标准运算符替代函数将运算符映射到函数原地运算符
1概述
概述 语言“核心”中的一部分的数据类型,例如数字和列表。对于这些类型,Python语言核心定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。 内置函数和异常 — 不需要 import 语句就可以在所有Python代码中使用的对象。 有一些是由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 这些模块集可以不同方式分类。有些模块是用 C 编写并内置于 Python 解释器中;另一些模块则是用 Python 编写并以源码形式导入。有些模块提供专用于 Python 的接口,例如打印栈追踪信息;有些模块提供专用于特定操作系统的接口,例如操作特定的硬件;另一些模块则提供针对特定应用领域的接口,例如万维网。有些模块在所有更新和移植版本的 Python 中可用;另一些模块仅在底层系统支持或要求时可用;还有些模块则仅当编译和安装 Python 时选择了特定配置选项时才可用。
2内置函数
内置函数列表 内置函数 abs() delattr() hash() memoryview() set() all() dict() help() min() setattr() any() dir() hex() next() slice() ascii() divmod() id() object() sorted() bin() enumerate() input() oct() staticmethod() bool() eval() int() open() str() breakpoint() exec() isinstance() ord() sum() bytearray() filter() issubclass() pow() super() bytes() float() iter() print() tuple() callable() format() len() property() type() chr() frozenset() list() range() vars() classme...
3内置常量
内置常量Falsebool 类型的假值。 给 False 赋值是非法的并会引发 SyntaxError。 Truebool 类型的真值。 给 True 赋值是非法的并会引发 SyntaxError。 NoneNoneType 类型的唯一值。 None 经常用于表示缺少值,当因为默认参数未传递给函数时。 给 None 赋值是非法的并会引发 SyntaxError。 NotImplemented二进制特殊方法应返回的特殊值(例如,eq()、lt()、__add __()、rsub() 等)表示操作没有针对其他类型实现;为了相同的目的,可以通过就地二进制特殊方法(例如,imul ()、 rightnd() 等)返回。 它的逻辑值为真。 Ellipsis与省略号文字字面 “…” 相同。 特殊值主要与用户定义的容器数据类型的扩展切片语法结合使用。 __debug__如果 Python 没有以 -O 选项启动,则此常量为真值。 另请参见 assert 语句。 注解 变量名 None,False,True 和 __ debug__ 无法重新赋值(赋值给它们,即使是属性名,将引发 Syntax...













