文章目录
从已有数据中创建数组array函数 将列表转为ndarray
(随机)random模块生成数组random函数 生成0到1之间的随机数rand函数 生成0到1均匀分布的随机数uniform函数 生成均匀分布的随机数(小数)randn函数 生成标准正态的随机数(小数)randint函数 随机生成整数normal函数 生成正态分布random_sample函数 生成随机的浮点数shuffle函数 随机打乱顺序seed函数 设置随机数种子
创建指定形状的多维数组zeros函数 创建全为0的数组ones函数 创建全为1的数组empty函数 创建空数组,空数据不为0,而是未初始化zeros_like函数 创建与某数组相同形状且全为0的数组ones_like函数 创建与某数组相同形状且全为1的数组empty_like函数 创建与某数组相同形状且为空的空数组(未初始化)eye函数 创建左上到右下对角线为1,其他为0的数组full函数 将某值填充某数组diag函数 创建对角线为某值其他为0的数组linspace函数 创建某范围内的等差数列logspace函数 创建某范围内的等比数列arange函数
获取二维元素获取一维数据choice函数数据的保存与读取算术运算数组合并数组变形计算时间
从已有数据中创建数组
array函数 将列表转为ndarray
import numpy
as np
list1
= [[2, 5, 3.2], [0, 4.2, 5]]
nd1
= np
.array
(list1
)
print(nd1
)
print(nd1
.shape
)
print(type(nd1
))
[[2. 5. 3.2]
[0. 4.2 5. ]]
(2, 3)
<class 'numpy.ndarray'>
(随机)random模块生成数组
注:下列例子省略调库语句import numpy as np,运行时要加上
random函数 生成0到1之间的随机数
nd1
= np
.random
.random
()
nd2
= np
.random
.random
(2)
nd3
= np
.random
.random
((2, 2))
rand函数 生成0到1均匀分布的随机数
nd1
= np
.random
.rand
()
nd2
= np
.random
.rand
(2)
nd3
= np
.random
.rand
(2, 3)
nd4
= np
.random
.rand
(2, 3, 4)
uniform函数 生成均匀分布的随机数(小数)
nd1
= np
.random
.uniform
(2, 5)
nd2
= np
.random
.uniform
(10, 50, 3)
nd3
= np
.random
.uniform
(0, 10, (2, 3))
randn函数 生成标准正态的随机数(小数)
nd1
= np
.random
.randn
()
nd2
= np
.random
.randn
(3)
nd3
= np
.random
.randn
(2, 3)
randint函数 随机生成整数
nd1
= np
.random
.randint
(2, 5)
nd2
= np
.random
.randint
(0, 10, 5)
nd3
= np
.random
.randint
(10, 50, (2, 3))
normal函数 生成正态分布
nd1
= np
.random
.normal
(10, 1)
nd2
= np
.random
.normal
(5, 10, 3)
nd3
= np
.random
.normal
(82, 20, (2, 3))
random_sample函数 生成随机的浮点数
nd1
= np
.random
.random_sample
()
nd2
= np
.random
.random_sample
(3)
nd3
= np
.random
.random_sample
((3, 3))
shuffle函数 随机打乱顺序
nd
= np
.random
.randint
(0,10,(5,5))
print("打乱前:\n",nd
)
np
.random
.shuffle
(nd
)
print("打乱后:")
print(nd
)
打乱前
[[9 3 6 5 1]
[4 2 5 7 8]
[5 9 1 7 7]
[1 1 5 9 3]
[7 0 1 4 8]]
打乱后
[[1 1 5 9 3]
[4 2 5 7 8]
[9 3 6 5 1]
[5 9 1 7 7]
[7 0 1 4 8]]
seed函数 设置随机数种子
np
.random
.seed
(100)
nd
= np
.random
.randint
(0, 10, 5)
print("种子为100时随机数的结果为:",nd
)
种子为
100时随机数的结果为:
[8 8 3 7 7]
创建指定形状的多维数组
zeros函数 创建全为0的数组
nd1
= np
.zeros
(2)
nd2
= np
.zeros
((2,3))
nd3
= np
.zeros
((2,3,4))
ones函数 创建全为1的数组
nd1
= np
.ones
(2)
nd2
= np
.ones
((2,3))
nd3
= np
.ones
((2,3,4))
empty函数 创建空数组,空数据不为0,而是未初始化
nd1
= np
.empty
(2)
nd2
= np
.empty
((2,3))
nd3
= np
.empty
((2,3,4))
zeros_like函数 创建与某数组相同形状且全为0的数组
nd1
= np
.zeros
((2,3))
nd2
= np
.zeros_like
(nd1
)
ones_like函数 创建与某数组相同形状且全为1的数组
nd1
= np
.zeros
((2,3))
nd2
= np
.ones_like
(nd1
)
empty_like函数 创建与某数组相同形状且为空的空数组(未初始化)
nd1
= np
.zeros
((2,3))
nd2
= np
.empty_like
(nd1
)
eye函数 创建左上到右下对角线为1,其他为0的数组
nd1
= np
.eye
(5)
print(nd1
)
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
full函数 将某值填充某数组
nd1
= np
.full
((3,5),666)
print(nd1
)
[[666 666 666 666 666]
[666 666 666 666 666]
[666 666 666 666 666]]
diag函数 创建对角线为某值其他为0的数组
nd1
= np
.diag
((1,2,3))
print(nd1
)
[[1 0 0]
[0 2 0]
[0 0 3]]
linspace函数 创建某范围内的等差数列
nd1
= np
.linspace
(0,5,11)
[0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5 5. ]
logspace函数 创建某范围内的等比数列
nd1
= np
.logspace
(0,2,10)
nd2
= np
.logspace
(1,3,10)
print("nd1为:\n",nd1
)
print("nd2为:\n",nd2
)
nd1为:
[ 1. 1.66810054 2.7825594 4.64158883 7.74263683
12.91549665 21.5443469 35.93813664 59.94842503 100. ]
nd2为:
[ 10. 16.68100537 27.82559402 46.41588834 77.42636827
129.1549665 215.443469 359.38136638 599.48425032 1000. ]
arange函数
nd1
= np
.arange
(10)
nd2
= np
.arange
(5, 11)
nd3
= np
.arange
(3, 12, 2)
nd4
= np
.arange
(2, 13, 3)
print("nd1为:",nd1
)
print("nd2为:",nd2
)
print("nd3为:",nd3
)
print("nd4为:",nd4
)
nd1为:
[0 1 2 3 4 5 6 7 8 9]
nd2为:
[ 5 6 7 8 9 10]
nd3为:
[ 3 5 7 9 11]
nd4为:
[ 2 5 8 11]
获取二维元素
nd
= np
.random
.randint
(0, 10, (5, 5))
print(nd
)
print(nd
[(nd
>3)&(nd
<8)])
print(nd
[3][2])
print(nd
[3, 2])
print(nd
[1])
print(nd
[1:4])
print(nd
[1:4:2])
print(nd
[:, 1])
print(nd
[:, 1:4])
print(nd
[:, 1:4:2])
print(nd
[1:3, 2:4])
获取一维数据
nd
= np
.random
.randint
(0, 10, 10)
print(nd
)
print(nd
[1])
print(nd
[2:8])
print(nd
[:5])
print(nd
[3:])
print(nd
[1:8:2])
print(nd
[::2])
choice函数
a
= np
.arange
(1, 25)
c1
= np
.random
.choice
(a
, size
=(3, 4))
c2
= np
.random
.choice
(a
, size
=(3, 4),replace
=True)
c3
= np
.random
.choice
(a
, size
=(3, 4),replace
=False)
数据的保存与读取
nd1
= np
.random
.random
([5, 5])
np
.savetxt
(X
=nd1
, fname
='./test1.txt')
nd2
= np
.loadtxt
('./test1.txt')
算术运算
nd为一个数或一维或多维数组数组
nd
**3
np
.max(nd
)
np
.maximum
(nd
, 5)
np
.sqrt
(nd
)
np
.sin
(nd
)
np
.cos
(nd
)
np
.abs(nd
)
np
.exp
(nd
)
np
.sum(nd
)
np
.mean
(nd
)
np
.median
(nd
np
.std
(nd
)
np
.var
(nd
)
np
.log
(nd
)
np
.log10
(nd
)
np
.log2
(nd
)
np
.multiply
(nd
, nd
)
np
.add
(nd
, nd
)
np
.subtract
(nd
, nd
)
np
.divide
(nd
, nd
)
nd
*nd
np
.dot
(nd
, nd
)
数组合并
np
.append
(nd1
,nd2
)
np
.append
(nd1
,nd2
,axis
=0)
np
.concatenate
((nd1
,nd2
),axis
=0)
np
.stack
((nd1
,nd2
),axis
=2)
np
.hstack
((nd1
, nd2
))
np
.vstack
((nd1
, nd2
))
np
.dstack
((nd1
, nd2
))
np
.vsplit
(nd1
, 4)
np
.hsplit
(nd1
, 3)
数组变形
print(nd
)
nd
.reshape
(2, 8)
nd
.reshape
(-1, 2)
nd
.reshape
(2, -2)
nd
.resize
(2, 8)
nd
.T
nd
.ravel
('F')
nd
.ravel
()
nd
.flatten
()
nd
.squeeze
nd
.transpose
(1, 0).shape
计算时间
import time
toc
= time
.process_time
()
tic
= time
.process_time
()
t
= str(1000*(toc
- tic
))