Mrli
别装作很努力,
因为结局不会陪你演戏。
Contacts:
QQ博客园

numpy使用记录

2019/11/27 机器学习
Word count: 662 | Reading time: 3min

Numpy使用记录

numpy中的random

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

  • a : 如果是一维数组,就表示从这个一维数组中随机采样;如果是int型,就表示从0到a-1这个序列中随机采样。
  • size : 采样结果的数量,默认为1.可以是整数,表示要采样的数量;也可以为tuple,如(m, n, k),则要采样的数量为m * n * k,size为(m, n, k)
  • replace : boolean型,采样的样本是否要更换?这个地方我不太理解,测了一下发现replace指定为True时,采样的元素会有重复;当replace指定为False时,采样不会重复。
  • p : 一个一维数组,制定了a中每个元素采样的概率,若为默认的None,则a中每个元素被采样的概率相同。
1
2
3
4
5
6
7
8
choice(a[, size, replace, p])
>>> np.random.choice(5, 3, replace=False)
array([3,1,0])
>>> #This is equivalent to np.random.permutation(np.arange(5))[:3]
# Generate a non-uniform random sample from np.arange(5) of size 3 without replacement:

>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0])

np.random.randint

1
2
3
np.random.randint(2,5,size=(2,3))
# 函数原型randint(low[, high, size])
# - 返回随机的整数,位于半开区间 [low, high)。

np.random.rand

1
2
3
4
5
>>> np.random.rand(3,2)
array([[ 0.14022471, 0.96360618], #random
[ 0.37601032, 0.25528411], #random
[ 0.49313049, 0.94909878]]) #random
# 跟random_sample([size])、random([size])和ranf([size])一样

array操作

广播啥的就不介绍了,主要是介绍一点函数方法的使用

array、asarray、asanyarray

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = np.array([1,2,3])
print(a)
>>>
[1 2 3]

c = np.array(a)
c[1]=3
print(a,c)
>>>
[1 2 3] [1 3 3]

b = np.asarray(a)
b[1]=3
print(a,b)
>>>
[1 3 3] [1 3 3]
#
  • array和asarray的不同在于array对目标做一个拷贝,而asarray不会
  • np.asanyarray 会返回 ndarray 或者ndarray的子类,而np.asarray 只返回 ndarray.

np.where(cond,x,y):满足条件(cond)输出x,不满足输出y

这个函数非常有用,非常香,但是他的参数需要narray

降维

1
2
3
4
5
6
7
8
9
10
11
a = np.array([[ 0,  1,  2,  3,  4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])

# 法一:ravel
print(a.ravel())
# 法二:flatten
print(a.flatten())
# 法三:reshape([1,-1])
print(a.reshape([1,-1]))

▲参数-1讲解:一个参数为-1时,那么reshape函数会根据另一个参数的维度计算出数组的另外一个shape属性值

[…]语法简单使用

在切片中...:的效果是一样的,都是缺省默认取所有的意思

1
2
3
# 两者等价
print(a[:,2])
print(a[...,2])

Author: Mrli

Link: https://nymrli.top/2019/09/28/numpy使用记录/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
git命令详解
NextPost >
Python random
CATALOG
  1. 1. Numpy使用记录
    1. 1.1. numpy中的random
    2. 1.2. array操作
      1. 1.2.1. 降维
      2. 1.2.2. […]语法简单使用