Python Numpy

numpy

数组array:一系列同类型的数据的集合,被非零整数进行索引

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
a = np.array([[1,2,3],[1,2,3]])
#如果有其他类型的数值,会被强制转换

np.arange(1,10)
[out] array([1,2,3,4,5,6,7,8,9,10])

#等差的数列
np.linspace(1,100, num = 50)
#1到100,共50个数,等差

#元素全部为1的数组
np.ones( )

#对角线为1的数组
np.ones(5)

#创建数全为0的数组
np.zeros( )

#创建空矩阵
np.empty([2,2])

#创建和a一样的空矩阵
np.empty_like(a)

随机函数(默认前闭后开)

1
2
3
4
5
6
7
np.random.rand( ) #uniform distribution 

np.random.randn( ) #standard normal distribution

np.random,randint(0, 100, size = 10 ) #在0到100之间,返回10个数

#random里面还有其他的,自学

一些基础操作

1
2
3
4
5
6
7
8
9
10
11
12
.ndim( )        #维度
.shape( ) #多少行多少列
.size( ) #多少个元素
.len( ) #有多少行
np.where(a >50, a, 0)
#在array a里面,如果大于50,就返回原来在a里面的数,否则返回0

np.concatenate((b, c), axis = 0)
#axis = 1 将b和c进行行组合,0是默认且列组合

np.unique( b )
#返回b中所有的唯一值,可以设定return——counts = True,来返回重复次数

索引和切片

1
2
3
4
5
6
7
a[x:y:z, x:y:z] 
#x是其实位置,y是末位,z是步长,z默认为1
a[2::2, ::2]
#从第二行到最后,步长为2,从第0列到最后,步长为2

a[(1,2,3), (2,3,4)]
#选取了(1,2), (2,3), (3,4)这几个位置的数

数学计算

1
2
3
4
5
np.add(a, b)         #= a + b
np.subtract(a, b) #= a - b
np.multiply(a, b) #= a * b
np.divide(a, b) #= a / b
np.dot(a, b) #点乘

broadcast

1
2
3
4
c + 10 
#c中的每一个元素都会加上10
c + a
#例如c是4*6的array, a是4*1的array,则结果为c中的每一行和a相加