numpy常用函数

stack(), vstack(), hstack()

l  stack():

import numpy as np

a=[[1,2,3],

   [4,5,6]]

print("列表a如下:")

print(a)

 

c=np.stack(a,axis=0)

print(c)

 

c=np.stack(a,axis=1)

print(c)

>>> 

列表a如下:
[[1, 2, 3], [4, 5, 6]]
 
[[1 2 3]
 [4 5 6]]
 
 [[1 4]
  [2 5]
  [3 6]]

 

l  Hstack():

a=[1,2,3], b=[4,5,6]

print(np.hstack((a,b)))

[1 2 3 4 5 6]

 

l  Vstack():

print(np.vstack((a,b)))

[[1 2 3]
 [4 5 6]]
:或则 -1 的用法
b1=[[[0 1 2]
      [ 3 4 5]]
 
 [[ 6 7 8]
      [ 9 10 11]]
 
 [[12 13 14]
      [15 16 17]]
 
 [[18 19 20]
  [21 22 23]]]

 

# 从最外层的维度分解出最后一个模块

b1[-1] =
 [[18 19 20]
 [21 22 23]]

 

# 写在最后一个维度的":"没有实质性作用,此处表示的意思和b1[-1]相同

b1[-1:]= b1[-1]

 

# 表示取出最外层的所有维度后每一个子模块中选择最后一个子模块

b1[:, -1]=

[[ 3 4 5]
 [ 9 10 11]
 [15 16 17]
 [21 22 23]]

 

# 表示取最里层维度的最后一个元素重新组成新的元组

b1[:, :, -1]=

[[ 2 5]
   [ 8 11]
   [14 17]
 [20 23]]
Sum()函数,mean()函数

c = [[0, 2, 1]

[3, 5, 6]

[0, 1, 1]]

 

print (c.mean())

print (c.mean(axis=0))

print (c.mean(axis=1))

2.11111111111
[ 1.   2.66666667 2.66666667]
[ 1.   4.66666667 0.66666667]

 

Tile()函数

tile英文单词意思:拼贴。tile(A, n)功能:将数组A重复n次,构成一个新的数组。

A的类型:array, list, tuple, dict, matrix,int, string, float,bool

n的类型: tuple,list, dict, array, antibook,不可以是float, string, matrix

 

np.tile(2, [3,3])

array([[2, 2, 2],
      [2, 2, 2],
      [2, 2, 2]])
argsort()方法

argsort(a):对数组或元组a进行升序排序, 返回的是升序之后的各个元素在原来a未升序之前的下标,即返回升序之后对应的下标数组

 

a = [2,-1,6,9,3,1]

#升序排列

print (np.argsort(a))

#降序排列,添加一个负号,并且a必须是array类型

print (np.argsort(-np.array(a)))

[1 5 0 4 2 3]
[3 2 4 0 5 1]
np.random

l  np.random.rand(2,3) 生成0-1间的随机数

 

l  np.random.randint(low,high,size),生成low到high间的整数

 

l  np.random.random(size=[])生成0到1间的随机数,与np.random.rand()相同

 

l  np.random.randn(2,4)生成均值为0,方差为1的标准正太分布

 

l  np.random.choice()

numpy.random.choice(a, size=None, replace=True, p=None)

a:一维数组或者int型变量,如果是数组,就按照里面的范围来进行采样,如果是单个变量,则采用np.arange(a)的形式

size : int 或者 tuple of ints, 可选参数 

决定了输出的shape. 如果给定的是, (m, n, k), 那么 m * n * k 个采样点将会被采样. 默认为零,也就是只有一个采样点会被采样回来。

replace : 布尔参数,可选参数 决定采样中是否有重复值

p :一维数组参数,可选参数 

对应着a中每个采样点的概率分布,如果没有标出,则使用标准分布。

np.random.choice(5,size=(2,3),replace=True)

array([[4, 0, 4],
       [2, 3, 4]])
revel()和flatten()

均是将多维降为1维

np.flatten()返回一份拷贝,对拷贝所做修改不会影响原始矩阵,而np.ravel()返回的是视图,修改时会影响原始矩阵

 

import numpy as np

x=np.array([[1,2],[3,4]])

# flattenh函数和ravel函数在降维时默认是行序优先

x.flatten()

x.ravel()

array ([1, 2, 3, 4])

# 传入'F'参数表示列序优先

x.flatten('F')

 

#reshape函数当参数只有一个-1时表示将数组降为一维

x.reshape(-1)

 

np.concatenate

a = np.array([[1, 2], [3, 4]])

b = np.array([[5, 6]])

 

np.concatenate((a, b), axis=0)

Out[25]:

array([ [1, 2],

      [3, 4],

      [5, 6]])

矩阵的广播

Arange(1,11) + arange(0,10)[ : np.newaxis]可以得到10x10 Hilbert matrix

array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],

       [ 2,  3,  4,  5,  6,  7,  8,  9, 10, 11],

       [ 3,  4,  5,  6,  7,  8,  9, 10, 11, 12],

       [ 4,  5,  6,  7,  8,  9, 10, 11, 12, 13],

       [ 5,  6,  7,  8,  9, 10, 11, 12, 13, 14],

       [ 6,  7,  8,  9, 10, 11, 12, 13, 14, 15],

       [ 7,  8,  9, 10, 11, 12, 13, 14, 15, 16],

       [ 8,  9, 10, 11, 12, 13, 14, 15, 16, 17],

       [ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],

       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])

转载于:https://www.cnblogs.com/yongfuxue/p/10032007.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值