numpy学习笔记

 

官方文档内容:

 

numpy.prod 

numpy.prodaaxis = Nonedtype = Noneout = Nonekeepdims = <no value>initial = <no value> 

返回给定轴上的数组元素的乘积。

 

numpy.transpose

numpy.transposeaaxes = None 

置换数组的维度。

参数:

: array_like

输入数组。

axes : 整数列表,可选

默认情况下,反转尺寸,否则根据给定的值对轴进行置换。

返回:

: ndarray

a轴被置换。尽可能返回视图

 

Examples

>>>
>>> x = np.arange(4).reshape((2,2))
>>> x
array([[0, 1],
       [2, 3]])
>>>
>>> np.transpose(x)
array([[0, 2],
       [1, 3]])
>>>
>>> x = np.ones((1, 2, 3))
>>> np.transpose(x, (1, 0, 2)).shape
(2, 1, 3)

 

 

numpy.dot 

numpy.dotabout =无

两个数组的点积。

参数:

: array_like

第一个论点。

: array_like

第二个论点。

out : ndarray,可选

输出参数。这必须具有未使用时返回的确切类型。特别是,它必须具有正确的类型,必须是C-contiguous,并且其dtype必须是为dot(a,b)返回的dtype 。这是一个性能功能。因此,如果不满足这些条件,则会引发异常,而不是尝试灵活。

返回:

输出 : ndarray

返回ab的点积。如果ab都是标量或两个1-D数组,则返回标量; 否则返回一个数组。如果给出了out,则返回。

举:

ValueError异常

如果a的最后一个维度与b的倒数第二个维度的大小不同。

Examples

>>>
>>> np.dot(3, 4)
12
Neither argument is complex-conjugated:

>>>
>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)
For 2-D arrays it is the matrix product:

>>>
>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.dot(a, b)
array([[4, 1],
       [2, 2]])
>>>
>>> a = np.arange(3*4*5*6).reshape((3,4,5,6))
>>> b = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3))
>>> np.dot(a, b)[2,3,2,1,2,2]
499128
>>> sum(a[2,3,2,:] * b[1,2,:,2])
499128

 

numpy.squeeze

numpy.squeeze(aaxis=None)

Remove single-dimensional entries from the shape of an array.

Examples

>>>
>>> x = np.array([[[0], [1], [2]]])
>>> x.shape
(1, 3, 1)
>>> np.squeeze(x).shape
(3,)
>>> np.squeeze(x, axis=(2,)).shape
(1, 3)

 

numpy.concatenate

numpy.concatenate((a1a2...)axis=0)

Join a sequence of arrays along an existing axis.

Parameters:

a1, a2, ... : sequence of array_like

The arrays must have the same shape, except in the dimension corresponding to axis (the first, by default).

axis : int, optional

The axis along which the arrays will be joined. Default is 0.

Returns:

res : ndarray

The concatenated array.

Examples

>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> np.concatenate((a, b), axis=0)
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],
       [3, 4, 6]])

numpy.linalg.inv

        :求矩阵的逆

 

numpy.flatnonzero

  该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index)

 

 

np.random.seed():

import numpy as np

if __name__ == '__main__':
    i = 0
    while(i<6):
        if(i<3):
            np.random.seed(0)
            print(np.random.randn(1, 5))
        else:
            print(np.random.randn(1, 5))
            pass
        i += 1
    i = 0
    while(i<2):
        print(np.random.randn(1, 5))
        i += 1
    print(np.random.randn(2, 5))
    np.random.seed(0)
    i = 0
    while(i<8):
        print(np.random.randn(1, 5))
        i += 1
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[-0.97727788 0.95008842 -0.15135721 -0.10321885 0.4105985 ]]
[[ 0.14404357 1.45427351 0.76103773 0.12167502 0.44386323]]
[[ 0.33367433 1.49407907 -0.20515826 0.3130677 -0.85409574]]
[[-2.55298982 0.6536186 0.8644362 -0.74216502 2.26975462]]
[[-1.45436567 0.04575852 -0.18718385 1.53277921 1.46935877]]
[[ 0.15494743 0.37816252 -0.88778575 -1.98079647 -0.34791215]
[ 0.15634897 1.23029068 1.20237985 -0.38732682 -0.30230275]]

[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]]
[[-0.97727788 0.95008842 -0.15135721 -0.10321885 0.4105985 ]]
[[ 0.14404357 1.45427351 0.76103773 0.12167502 0.44386323]]
[[ 0.33367433 1.49407907 -0.20515826 0.3130677 -0.85409574]]
[[-2.55298982 0.6536186 0.8644362 -0.74216502 2.26975462]]
[[-1.45436567 0.04575852 -0.18718385 1.53277921 1.46935877]]
[[ 0.15494743 0.37816252 -0.88778575 -1.98079647 -0.34791215]]
[[ 0.15634897 1.23029068 1.20237985 -0.38732682 -0.30230275]]

1.1.两次利用随机数种子后,即便是跳出循环后,生成随机数的结果依然是相同的。第一次跳出while循环后,进入第二个while循环,得到的两个随机数组确实和加了随机数种子不一样。但是,后面的加了随机数种子的,八次循环中的结果和前面的结果是一样的。说明,随机数种子对后面的结果一直有影响。同时,加了随机数种子以后,后面的随机数组都是按一定的顺序生成的。

1.2.在同样的随机种子后第六次的随机数生成结果,(结果高亮部分),两行五列的数组和两个一行五列的数组结果相同。说明,在生成多行随机数组时,是由单行随机数组组合而成的。

(转自https://www.cnblogs.com/subic/p/8454025.html

 

 

numpy.random.choice

numpy.random.choiceasize = Nonereplace = Truep = None 

从给定的1-D阵列生成随机样本

版本1.7.0中的新功能。

参数:

: 1-D数组或int

如果是ndarray,则从其元素生成随机样本。如果是int,则生成随机样本,就好像a是np.arange(a)

size : int或int的元组,可选

输出形状。如果给定的形状是例如,则 绘制样本。默认值为None,在这种情况下返回单个值。(m, n, k)m * n * k

replace : 布尔值,可选

样品是否有替代品

: 1-D数组,可选

与a中的每个条目相关联的概率。如果没有给出,则样本假定在a中的所有条目上均匀分布。

返回:

样品 : 单品或ndarray

生成的随机样本

举:

ValueError异常

如果a是int且小于零,如果a或p不是1维,如果a是大小为0的数组,如果p不是概率向量,如果a和p具有不同的长度,或者如果a replace = False,样本大小大于总体大小

 

# 参数意思分别 是从a 中以概率P,随机选择3个, p没有指定的时候相当于是一致的分布
a1 = np.random.choice(a=5, size=3, replace=False, p=None)
print(a1)
# 非一致的分布,会以多少的概率提出来
a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])
print(a2)
# replacement 代表的意思是抽样之后还放不放回去,如果是False的话,那么出来的三个数都不一样,如果是
# True的话, 有可能会出现重复的,因为前面的抽的放回去了。

 

 

numpy.argsort(a, axis=-1, kind=’quicksort’, order=None) 

功能: 将矩阵a按照axis排序,并返回排序后的下标 
参数: a:输入矩阵, axis:需要排序的维度 
返回值: 输出排序后的下标

>>> x = np.array([3, 1, 2])
>>> np.argsort(x)
array([1, 2, 0])
1
2
3
>>> x = np.array([[1, 5, 7], [3, 2, 4]])
>>> np.argsort(x, axis=0)
array([[0, 1, 1],
       [1, 0, 0]])  #沿着行向下(每列)的元素进行排序
>>> np.argsort(x, axis=1)
array([[0, 1, 2],
       [1, 0, 2]])  #沿着列向右(每行)的元素进行排序

 

 

 

numpy.random.randn()

numpy.random.randn(d0,d1,…,dn)

  • randn函数返回一个或一组样本,具有标准正态分布。
  • dn表格每个维度
  • 返回值为指定维度的array


array([[[ 1.27820764,  0.92479163],
        [-0.15151257,  1.3428253 ],
        [-1.30948998,  0.15493686]],
 
       [[-1.49645411, -0.27724089],
        [ 0.71590275,  0.81377671],
        [-0.71833341,  1.61637676]],
 
       [[ 0.52486563, -1.7345101 ],
        [ 1.24456943, -0.10902915],
        [ 1.27292735, -0.00926068]],
 
       [[ 0.88303   ,  0.46116413],
        [ 0.13305507,  2.44968809],
        [-0.73132153, -0.88586716]]])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值