I4 o `4 s8 G2 Q& _+ F
4. 创建随机数组" j- d. _) M2 b7 B) G; v5 |
r+ O x' ^6 E0 B" y2 Knp.random 模块生成随机数组,更加方便,示例代码如下:9 _6 I* H4 X5 x. B% s% }, O2 E
, M7 H) I+ A+ M2 P% L2 F _上面产生的数据是属于一个均匀分布。那么什么是均匀分布呢?在概率论和统计学中,均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。 均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。2 E7 c& Z8 r' N. c0 d6 b
0 K: e. ?0 H/ J4 \3 W
正态分布?给定均值/标准差/维度的正态分布,示例代码如下:- `. j N: t0 I9 \% D" g
+ {$ U$ K4 M1 `8 r5 } f7 y' F
正态分布是一种概率分布。正态分布是具有两个参数μ和σ的连续型随机变量的分布,第一参数μ是服从正态分布的随机变量的均值,第二个参数σ是此随机变量的方差,所以正态分布记作N(μ,σ )。1 H y C f/ ~% F' b7 `
# P P+ f. c' B; z
生活、生产与科学实验中很多随机变量的概率分布都可以近似地用正态分布来描述。μ决定了其位置,其标准差σ。决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。) J2 B" p8 Q2 Z B' y
4 v8 {) f! A, |+ _标准差如何来?方差是在概率论和统计方差衡量一组数据时离散程度的度量。9 I2 e9 ^: y, B* W; G& v% w. j
& Y2 [4 N: z. n6 k! R9 P. N* G
其中M为平均值,n为数据总个数,s为标准差,s^2可以理解一个整体为方差。1 G4 u. D+ N& N$ B- I
- i& e% q8 m) Q
通过索引切片等获取数组中的值,一维数组示例代码如下: 2 ^: ]/ K, X. x/ R( T7 N& }, P- q, X5 H; m( U" L
二维数组示例代码如下:4 G, x# U) l$ z6 a2 j
/ w0 d$ F, S. p( Y. Q7 s
三维数组示例代码如下:6 A- @: _( h% `
( a; P: d1 Q/ `3 w1 e- S: w0 H4 _% S+ h4 [ t0 L6 P
4. 数组形状与类型变化 ?1 h: x! E g3 @- _( f' K
* Y( b. R0 b% p8 R0 P7 P& L1. ndarray.reshape(shape[, order]) Returns an array containing the same data with a new shape. 示例代码如下: + l6 ~/ g) p5 h: f# o- W U& ?7 s$ w# a6 `4 b, o0 ? z
2. ndarray.resize(new_shape[, refcheck]) Change shape and size of array in-place. 示例代码如下:( L/ z- _# L4 {* R5 `/ i
, w- W3 ]$ i: a4 K7 f9 c
3. 修改类型 ndarray.astype(type) 示例代码如下: 0 ]2 `6 q; c+ x9 X' m1 \/ C" _, g + w! u7 }4 A7 H% Y6 G# C ^! H% a9 Y4. 修改小数位数 ndarray.round(arr, out) Return a with each element rounded to the given number of decimals. 示例代码如下: , V+ `, b4 l% Q; r1 ^; M n4 A, y 7 _( k& Y. I' u& U5. ndarray.flatten([order]) Return a copy of the array collapsed into one dimension. 示例代码如下: ?) N) A0 P# ]! t7 W) z# |
1 K1 l4 T0 O* j$ p! T* a2 D6. ndarray.T 数组的转置 将数组的行、列进行互换 示例代码如下:% _# C: m$ ]( u! O- L9 A" x. k
1 o* ^+ B$ t' a
7. ndarray.tostring([order])或者ndarray.tobytes([order]) Construct Python bytes containing the raw data bytes in the array. 转换成bytes . |# p/ R4 m& y( `2 D* z # R5 D; o, G/ \: o, u8. ndarray.copy([order]) Return a copy of the array. 当我们不想修改某个数据的时候,就可以去进行拷贝操作。在拷贝的数据上进行操作,示例代码如下:; ]* x( O- i" G- a6 ~! ?" \) Y
2 D. Q% ^/ p$ H( l8 Z9 Y
z' _7 z/ `9 O# r. i5 l
4. 数组运算 - d; e! F" p! p8 O6 { ! v# l: H: x$ y& M% X) p4.1 逻辑运算, f- H4 i) u5 p/ F' Q6 [4 s7 E
: X6 J3 K+ G8 n M1 m* L. J0 [2 {) J I' H d* R# I! m
通用判断函数,np.all(),示例代码如下:% [" Q+ V' j2 d; U( E
3 D' {+ o) g2 |4 \/ S* v
np.unique():返回新的数组的数值,不存在重复的值,示例代码如下:6 T7 A, ^# v5 I- g3 B3 h. q9 H F: P
+ z6 L# G( K% n4 znp.where (三元运算符):通过使用np.where能够进行更加复杂的运算,示例代码如下: & \; f& u- `( s: R1 o0 J# \, f ! q/ S+ X5 F7 U$ H% A2 |% j" h3 b7 K" R, k
4.2 统计运算 $ g. m( t0 E8 v# C0 D6 b& u4 f ~( O _+ ]
在数据挖掘/机器学习领域,统计指标的值也是我们分析问题的一种方式。注意:进行统计的时候,axis轴 的取值并不一定, NumPy中不同的API轴的值都不一样,在这里,axis 0代表列, axis 1代表行 去进行统计。常用的指标如下:6 @% W. i/ H g8 v( ~
) L9 o3 j; c2 e5 u A
min(a[, axis, out, keepdims]) Return the minimum of an array or minimum along an axis. 示例代码如下:$ h% D1 x6 f; G) H, N: A+ C# Y* m
8 x2 D" a+ q4 F, ?2 p8 z
max(a[, axis, out, keepdims]) Return the maximum of an array or maximum along an axis. 示例代码如下: 7 a" p+ ?3 I V5 t / m7 H* d; `# _2 Umedian(a[, axis, out, overwrite_input, keepdims]) Compute the median along the specified axis. 示例代码如下:' @5 y) H6 m: O6 B' U
. R# L" \, v$ J1 s. P8 m) D! xmean(a[, axis, dtype, out, keepdims]) Compute the arithmetic mean along the specified axis. 示例代码如下: $ K0 ?6 r2 d2 R+ p$ A8 K/ ?' I% b
std(a[, axis, dtype, out, ddof, keepdims]) Compute the standard deviation along the specified axis. 示例代码如下: 6 D; A/ M, L$ B; |' [" j4 W) n6 U. b8 M3 H) n
var(a[, axis, dtype, out, ddof, keepdims]) Compute the variance along the specified axis. 示例代码如下:% N( @5 y: t( b' p# K
' r3 l+ x' d4 l* Q5 d0 n
np.argmax(temp, axis=) 示例代码如下: 6 F3 j, z0 ?3 k& V! t* @' Y: H0 ^; d5 Q5 o: m* b) H
np.argmin(temp, axis=) 示例代码如下: B6 O$ \7 p9 y% e: k% |( Z) s1 i- }! d
4.3 数组间运算 * x0 q& J# J5 I; Y; M- P# r2 ]6 I4 A+ U0 y! `
数组与数的运算,示例代码如下:, R$ E7 }" Z+ I( n% H. |! g- z; c4 \
- [+ {/ ?9 c9 ?+ n% ~. w! |! K
矩阵运算,什么是矩阵?矩阵,英文matrix,和array的区别矩阵必须是2维的,但是array可以是多维的。示例代码如下: 6 Q4 K2 Y0 f4 W: f7 E: W0 v) ~/ k) i0 U1 Z4 {
6 b' c* n3 F% h
4.4 合并分割7 f: w4 V7 r" ~
3 H `) F' A! e3 [5 ~/ O% q
numpy.concatenate((a1, a2, …), axis=0) 示例代码如下:' Z' P, w/ }' }
3 ~* K; v( c3 } a5 o- d/ O
numpy.hstack(tup) Stack arrays in sequence horizontally (column wise). 示例代码如下:, u& O0 G: t4 e& `
2 o" G& I9 g, g1 J0 `8 k+ S2 F$ pnumpy.vstack(tup) Stack arrays in sequence vertically (row wise). 示例代码如下: 5 a7 M' R1 E& ?+ E7 z. F- m" G* Z$ L n3 H2 O; ~$ `7 V4 N% _2 M3 x
numpy.split(ary, indices_or_sections, axis=0) Split an array into multiple sub-arrays. 示例代码如下:5 }8 d8 u P W