numpy基本属性
array.ndim array的维度array.shape array的形状array.size array中元素个数array.dtype array的数据类型
array = np. array( [ [ 1 , 2 , 3 ] , [ 2 , 3 , 4 ] ] )
print ( array)
print ( array. ndim)
print ( array. shape)
print ( array. size)
print ( array. dtype)
output:
array:
[ [ 1 2 3 ]
[ 2 3 4 ] ]
ndim: 2
shape: ( 2 , 3 )
size: 6
dtype: int64
numpy生成
np.array(list) 通过 list 生成一个arraynp.zeros(shape) 生成一个形状为 shape 的全0矩阵np.ones(shape) 生成一个形状为 shape 的全1矩阵np.arange(begin, end, step) 生成一个 [begin,end) 间隔step 的数列np.linspace(begin, end, num=50, endpoint=True) 生成一个 [begin,end] 长度num 的等差数列,endpoint = False 时不计入endarray.copy() 生成一个array的复制
a = np. array( [ 2 , 3 , 4 ] )
b = np. zeros( ( 3 , 4 ) )
c = np. empty( ( 3 , 4 ) )
d = np. ones( ( 3 , 4 ) )
e = np. arrange( 0 , 12 , 1 ) )
f = np. linspace( 1 , 10 , 5 )
output:
a:
[ 2 3 4 ]
b:
[ [ 0 . 0 . 0 . 0 . ]
[ 0 . 0 . 0 . 0 . ]
[ 0 . 0 . 0 . 0 . ] ]
d:
[ [ 1 . 1 . 1 . 1 . ]
[ 1 . 1 . 1 . 1 . ]
[ 1 . 1 . 1 . 1 . ] ]
e:
[ 0 1 2 3 4 5 6 7 8 9 10 11 ]
f:
[ 1 . 3.25 5.5 7.75 10 . ]
numpy 数组操作
array.T 将array的转置array.reshape(shape) 将array转换为形状为shape 的矩阵np.concatenate((array1,array2,…), axis=0 ) 将array1、array2按 维度axis 拼接np.split(array, num, axis=0) 将array按维度axis 切分成num 个np.dot(array1,array2) array1和array2做矩阵乘法
array1 = np. array( [ [ 1 , 2 ] ,
[ 3 , 4 ] ] )
array2 = np. array( [ [ 5 , 6 ] ,
[ 7 , 8 ] ] )
print ( array1. T)
print ( array1. reshape( ( 4 , 1 ) ) )
print ( np. concatenate( ( array1, array2) , axis= 0 ) )
print ( np. concatenate( ( array1, array2) , axis= 1 ) )
print ( np. split( array1, 2 , axis= 0 ) )
print ( np. split( array1, 2 , axis= 1 ) )
print ( np. dot( array1, array2) )
output:
array1. T:
[ [ 1 3 ]
[ 2 4 ] ]
array1. reshape:
[ [ 1 ]
[ 2 ]
[ 3 ]
[ 4 ] ]
np. concatenate_axis= 0 :
[ [ 1 2 ]
[ 3 4 ]
[ 5 6 ]
[ 7 8 ] ]
np. concatenate_axis= 1 :
[ [ 1 2 5 6 ]
[ 3 4 7 8 ] ]
np. split_axis= 0 :
[ array( [ [ 1 , 2 ] ] ) , array( [ [ 3 , 4 ] ] ) ]
np. split_axis= 1 :
[ array( [ [ 1 ] ,
[ 3 ] ] ) ,
array( [ [ 2 ] ,
[ 4 ] ] ) ]
np. dot:
[ [ 19 22 ]
[ 43 50 ] ]
numpy.random
均分布:在概率论和统计学中,均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。
np.random.uniform(low=0, high=1, size=None) 生成一个形状为size 的array,元素均为范围在 [low,high) 均分布浮点数。np.random.randint(low, high, size=None) 生成size 个整数,取值区间为 [low, high) ,若没有输入参数high 则取值区间为 [0, low) np.random.choice(array, size=None, replace=True, p=None) 从 array 中选取形状为 size 的矩阵,replace=True 表示可重复抽取,p 每个数出现的概率矩阵, 若 array 是整数,则 array 代表 arange(array) np.random.permutation(array) 将 array 的第一位索引打乱, 若 array 是整数,则打乱 arange(array)
>> > np. random. uniform( )
0.3999807403689315
>> > np. random. uniform( 5 , 6 , size= ( 2 , 3 ) )
array( [ [ 5.82416021 , 5.68916836 , 5.89708586 ] ,
[ 5.63843125 , 5.22963754 , 5.4319899 ] ] )
>> > np. random. randint( 8 )
5
>> > np. random. randint( 8 , size= ( 2 , 2 , 3 ) )
array( [ [ [ 4 , 7 , 0 ] ,
[ 1 , 4 , 1 ] ] ,
[ [ 2 , 2 , 5 ] ,
[ 7 , 6 , 4 ] ] ] )
>> > np. random. choice( 5 )
3
>> > np. random. choice( [ 0.2 , 0.4 ] , p= [ 1 , 0 ] )
0.2
>> > np. random. permutation( 5 )
array( [ 1 , 2 , 3 , 0 , 4 ] )
>> > np. random. permutation( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )
array( [ [ 4 , 5 , 6 ] ,
[ 1 , 2 , 3 ] ] )
numpy&&matplotlib
链接:https://www.runoob.com/numpy/numpy-matplotlib.html