数组属性和基本操作
np.arange(start=150,stop=0,step=-1)
- 将值倒过来
import numpy as np
#matplotlib画图的,也可以读取图片
import matplotlib.pyplot as plt
np.arange(150, 1, step=-1)
输出
array([150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138,
137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125,
124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112,
111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99,
98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86,
85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73,
72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60,
59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47,
46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34,
33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21,
20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8,
7, 6, 5, 4, 3, 2])
2.7 随机数组抽样
1.生成随机的整数型矩阵
np.random.randint(low=0,high=150,size=(5,4))
- low 表示的是最小值
- high 表示最大值
- size 是一个元祖类型
nd1 = np.random.randint(0, 155, size=(5, 4))
display(nd1.dtype)
输出
dtype(‘int32’)
2. 标准的正态分布
np.random.randn(10,5)
- 输出
没有固定的参数,每多加一个数字,代表多真假一个维度
nd2 = np.random.randn(10, 5)
nd2
输出
array([[-7.17465685e-02, 8.97999644e-01, -1.01189107e+00,
6.29572791e-01, -1.80740610e-01],
[ 8.13237248e-01, 6.24399001e-01, -1.01024921e+00,
-1.39402595e+00, 1.73300388e+00],
[ 5.65812188e-01, -3.41566690e-01, 6.18996387e-01,
-1.06630093e+00, 1.13662646e+00],
[-1.90524270e-01, 4.14243506e-01, 2.99203707e-01,
3.91685734e-02, -4.20081127e-01],
[ 3.35201508e-01, 3.06824463e-02, 4.29531982e-01,
2.65788533e-01, 9.24575924e-01],
[ 6.00198193e-01, -8.21467127e-01, 1.10462529e+00,
2.74473179e-01, 7.58630288e-01],
[-5.74027894e-01, 2.38057571e-01, -1.34492521e+00,
3.42149500e-01, -2.52783483e-01],
[ 1.65575102e+00, -2.05932806e-01, -1.00664911e+00,
-1.00871681e+00, -3.91605776e-01],
[ 4.93294769e-01, 4.30644126e-02, 3.20789124e-01,
1.00034941e+00, 1.00526627e-01],
[ 1.47097903e-03, 2.69390841e-01, 3.96618545e-03,
-2.89304322e-01, -3.07926840e-01]])
3.随机抽样
np.random.random(size=(456,730,3))
- size 表示形状
nd3 = np.random.random(size=(456, 730, 3))
# size 表示形状
# random随机生成0-1
plt.imshow(nd3)
<matplotlib.image.AxesImage at 0xed4e6d8>
nd3.dtype
输出
dtype(‘float64’)
4.标准方差,代表数据的稳定性
np.random.normal(loc=170,scale=100,size=50)
normal也是一个正态分布的一个方法
生成一个一维数组
- location 是定位的的值
- scale 是波动值
- size 是数据长度
nd4 = np.random.normal(loc=200, scale=100, size=50)
nd4
输出
array([-56.02232919, 153.45697237, 211.4699278 , 175.8184369 ,
77.18195801, 316.30562106, 251.55919822, 249.03665012,
214.84112035, 214.60311729, 60.12026691, 163.53327963,
117.85773035, 169.87077409, 185.35857895, 336.48425501,
168.53226238, 263.93486349, 285.09881005, 224.79650831,
242.71883123, 233.49179984, 285.41369792, 126.59530067,
194.95166998, 191.40061835, 288.26058067, 233.28608553,
431.90448377, 162.51105433, 396.13946643, 104.43390237,
74.23309279, 336.54800229, 92.09935907, 410.05980147,
145.4054326 , 188.42084088, 272.32293993, 156.79765209,
208.25501995, 252.51071293, 255.60679396, 194.88091883,
203.67786615, 239.83429384, 292.21927586, 228.09728718,
190.78466303, 258.07911366])
5.随机数
每一个数据,都是一个维度
rand 和 random 的区别:random 需要 size来描述形状,而rand只需要我们直接给值,通过值的数量来确定形状
np.random.rand(d1,d2,dn)
nd5 = np.random.rand(456, 730, 3)
nd5
输出
array([[[0.48251924, 0.58360837, 0.50571184],
[0.84015656, 0.64538107, 0.27610826],
[0.91038242, 0.76890052, 0.21667493],
…,
[0.54192019, 0.5773379 , 0.97012533],
[0.67118332, 0.482776 , 0.83270159],
[0.05082725, 0.12324931, 0.43254904]],[[0.59763352, 0.82346195, 0.05238808], [0.88013475, 0.32720737, 0.66413674], [0.78427348, 0.7540094 , 0.31645346], ..., [0.486801 , 0.48158342, 0.79319007], [0.74409383, 0.33681167, 0.70245972], [0.8459772 , 0.30818404, 0.8559085 ]], [[0.95734985, 0.02237371, 0.19859254], [0.40804435, 0.46756388, 0.14389389], [0.84333377, 0.45708618, 0.93690335], ..., [0.95090075, 0.24181324, 0.60599297], [0.29234272, 0.08784666, 0.60669042], [0.38705636, 0.63969406, 0.39367339]], ..., [[0.60636193, 0.81418486, 0.55794838], [0.99319523, 0.89525226, 0.3027485 ], [0.11739645, 0.47303434, 0.77561122], ..., [0.15309203, 0.94459511, 0.97619881], [0.67865788, 0.0357113 , 0.33575641], [0.16167815, 0.04022808, 0.36632257]], [[0.67613125, 0.72950058, 0.45039344], [0.97297441, 0.04063427, 0.97781784], [0.30074768, 0.0473752 , 0.36833314], ..., [0.58241118, 0.71152678, 0.23845613], [0.76157266, 0.67666114, 0.94035192], [0.79084713, 0.89129279, 0.93983466]], [[0.24880475, 0.41904647, 0.4706133 ], [0.00705752, 0.67130627, 0.46979071], [0.1794662 , 0.34267615, 0.37759805], ..., [0.56038342, 0.82268221, 0.16605486], [0.58547802, 0.2627139 , 0.59724263], [0.25576816, 0.23193501, 0.1962647 ]]])
plt.imshow(nd5)
<matplotlib.image.AxesImage at 0xf56b320>
2.9 linspace 与 logspace
linspace是线性生成的,是全闭区间
回忆一下
nd6 = np.linspace(0, 150, num=151)
nd6
输出
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
22., 23., 24., 25., 26., 27., 28., 29., 30., 31., 32.,
33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,
44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54.,
55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65.,
66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 76.,
77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87.,
88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98.,
99., 100., 101., 102., 103., 104., 105., 106., 107., 108., 109.,
110., 111., 112., 113., 114., 115., 116., 117., 118., 119., 120.,
121., 122., 123., 124., 125., 126., 127., 128., 129., 130., 131.,
132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
143., 144., 145., 146., 147., 148., 149., 150.])
logspace是线性生成,并且以什么为底
start从几开始
stop 到数字结尾
num 生成多少个数
base 表示的是底数 默认以10为底
np.log10(100)
# 晚上自习的时候看一下 logn 的使用
输出
2.0
nd7 = np.logspace(0, 150, num=151, base=np.e)
nd7
输出
array([1.00000000e+00, 2.71828183e+00, 7.38905610e+00, 2.00855369e+01,
5.45981500e+01, 1.48413159e+02, 4.03428793e+02, 1.09663316e+03,
2.98095799e+03, 8.10308393e+03, 2.20264658e+04, 5.98741417e+04,
1.62754791e+05, 4.42413392e+05, 1.20260428e+06, 3.26901737e+06,
8.88611052e+06, 2.41549528e+07, 6.56599691e+07, 1.78482301e+08,
4.85165195e+08, 1.31881573e+09, 3.58491285e+09, 9.74480345e+09,
2.64891221e+10, 7.20048993e+10, 1.95729609e+11, 5.32048241e+11,
1.44625706e+12, 3.93133430e+12, 1.06864746e+13, 2.90488497e+13,
7.89629602e+13, 2.14643580e+14, 5.83461743e+14, 1.58601345e+15,
4.31123155e