numpy.ndarray
numpy.ndarray(shape, dtype=None, buffer=None, offset=0, strides=None, order=None)
This is an array object represents a multidimensional array of fixed-size items(Fixed-size 意味着数组一旦创建就没法修改了)。
- shape: tuple of ints(除了该参数必须之外,其余为可选);
- dtype: data-type
- buffer: object exposing buffer interface, used to fill the array with data.
- offset: int, offset of array data in buffer.
- strides: tuple of ints, strides of data in memory.
- order: {‘C’, ‘F’}, row-major (C-style) or column-major (Fortran-style).
注:
- 如果 buffer 是 None,则只有 Shape、dtype、 order 是需要的。
- 如果 buffer 不是 None,则所有参数都会用到。
- buffer 的 dtype 和 ndarray 的 dtype 要保持一致。
1 | 2, 3), dtype=np.int32, buffer=np.array([1,2,3,4,5,6], dtype=np.int32)) m = np.ndarray(shape=( |
numpy.array
numpy.array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)
这是 numpy 创建数组最常用的方式了,object
通常传入一个 list
数组,可以是一维或者多维。
e.g.
1 | 1, 2, 3.0]) np.array([ |
numpy.allclose()
numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)
Returns True if two arrays are element-wise equal within a tolerance.
numpy.arange()
numpy.arange([start,] stop, [step, ] dtype=None)
Returns an ndarray in range [start, stop)
e.g.
1 | 3) np.arange( |
与python内置的range和xrange的比较:
range()
多用于循环,会返回一个list。xrange()
也多用于循环,但不返回list,而是类似generator,每次返回一个元素,因此内存开销更小。另外,python3 已经将range()
的实现改成xrange()
的方式,而xrange()
这个接口则已经被取消了。
numpy.asmatrix()
numpy.asmatrix(data, dtype=None)
Interprete the input as a matrix, does not make a copy if the input is already a matrix or an ndarray.
Returns numpy matrix.
1 | 1, 2], [3, 4]]) x = np.array([[ |
numpy.random.permutation
numpy.random.permutation(x)
Randomly permute a sequence, or return a permuted range.
Parameters
x: int or array_like. If x is an integer, randomly permute np.arange(x). If x is an array, make a copy and shuffle the elements randomly.
Returns
out: ndarray. Permuted sequence or array range.
1 | 1,2,3,4,5))) permutation = np.random.permutation(np.array(( |
numpy 生成序列中的随机子序列
可以借助 numpy.random.choice
接口。
例如,要从 0 ~ 5 的数字中随机挑出 3 个数字,可以这样写:
1 | 5, 3) # 等概率随机挑选 np.random.choice( |
还可以根据不同的概率挑选:
1 | 5, 3, p=[0.1, 0, 0.3, 0.6, 0]) # 3 的概率最大,为0.6 np.random.choice( |
可以设置不放回地挑选:
1 | 5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0]) np.random.choice( |
当然,除了数字外,我们可以对其他类型的列表进行随机挑选:
1 | 'pooh', 'rabbit', 'piglet', 'Christopher'] aa_milne_arr = [ |
numpy.argmax
numpy.argmax(a, axis=None, out=None)
返回数组中最大值的下标
参数
a:数组
axis:比较的坐标系或者维度,如果没有提供,则对数组中的所有元素进行比较。
返回一个下标数组
e.g.
1 | 6).reshape(2,3) a = np.arange( |
numpy.where
numpy .where(condition, x, y)
这个函数会根据 condition,返回合适的下标。
e.g.
1 | 1,2,3,4]) a = np.array([ |