当前位置: 代码迷 >> 综合 >> numpy常用函数汇总(np.vectorize,np.where,np.vstack)
  详细解决方案

numpy常用函数汇总(np.vectorize,np.where,np.vstack)

热度:26   发布时间:2023-12-19 03:52:38.0

1. numpy定义

初始化

# 普通的numpy array定义
numpy.array(object, dtype=None, copy=True, order='K', \
subok=False, ndmin=0)
# 定义一个维度且服从[0,1]均匀分布的array。
numpy.random.rand(d0, d1, ..., dn)
# 定义 全1 的array
numpy.ones(shape, dtype=None, order='C')[source]
# 对角元素
numpy.diag(v, k=0)[source]
# 对角元素全1,N:行数,M:列数。
numpy.eye(N, M=None, k=0, dtype=<type 'float'>)[source]

2. 初始化

随机数组

np.random.randint(5, size=(2, 4))

3. 判断函数

同时满足两个条件:

my_array = arange(10)
np.where((my_array > 3) & (my_array < 7))

满足其中一个条件:

res = np.where(np.logical_or(mask == 120, mask == 180), 1, 0)

4. np.vectorize

class numpy.vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, 
signature=None)

生成函数类。

该函数以对象或numpy数组的嵌套序列作为输入,并返回单个numpy数组或numpy数组的元组。

def myfunc(a, b):"Return a-b if a>b, otherwise return a+b"if a > b:return a - belse:return a + b
vfunc = np.vectorize(myfunc)
vfunc([1, 2, 3, 4], 2)

效果:

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

5. np.vstack, np.hstack,np.append

np.vstack: 主要对array进行垂直方法的合并;

np.hstack: 主要对array进行水平方向的合并;

np.append:主要对1维数组进行合并。

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

效果:

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

6. 分位数

# 分位数,第25%小的数
arr = np.array([1,2,3,4,5,6,7,8,9,10])
np.percentile(arr, 25)

更多的numpy函数 python的numpy包使用;


参考:

  1. numpy.random.rand;
  2. numpy.array;
  3. numpy eye;
  4. randint:
  5. np.vectorize;
  6. np.vstack;