美文网首页我爱编程
Numpy的常用方法(持续更新)

Numpy的常用方法(持续更新)

作者: best_coder | 来源:发表于2018-02-17 13:30 被阅读0次

1. 创建数组

  • 使用array()函数创建
 vector = np.array([1, 2, 3, 4])  一维数组
 
 vector = np.array([[], [], []])  多维数组
  • 使用arange()函数,linspace()函数创建一个等差数组
 arr = np.arange(15)
 [output] array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14])
 
 arr = np.arange(1, 10)
 [output]  array([1, 2, 3, 4, 5, 6, 7, 8, 9])
 
 arr = np.arange(0, 10, 2)
 [output]  array([0, 2, 4, 6, 8])
  • 使用random()函数创建一个随机数组
arr = np.random.random(3)
[output]  array([ 0.53340376,  0.38891447,  0.46406961])
  • 使用zeros()函数创建一个全0数组
arr = np.zeros((3, 4, 5), dtype=np.int32)
[output]  array([[[0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0]],

               [[0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0]],

               [[0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0]]], dtype=int32)
  • 使用ones()函数创建一个全一数组
arr = np.ones((2, 3, 4))
[output]  array([[[ 1.,  1.,  1.,  1.],
                [ 1.,  1.,  1.,  1.],
                [ 1.,  1.,  1.,  1.]],

               [[ 1.,  1.,  1.,  1.],
                [ 1.,  1.,  1.,  1.],
                [ 1.,  1.,  1.,  1.]]])

2. 数组的属性

  • ndim 数组的维度(dimension)的总数
  • shape 数组的维度,返回的是一个元祖(tuple)
  • size 数组的总元素个数
  • dtype 数组元素的类型
arr = np.arange(15).reshape(3, 5)
arr.ndim
[output]  2
arr.shape
[output]  (3, 5)
arr.size
[output]  15
arr.dtype
[output]  dtype('int64')
type(arr)
[output]  numpy.ndarray

3. 常见的函数

  • reshape(), resize()函数,改变数组的维度
A = np.linspace(0, 10, 6)
[output]  array([  0.,   2.,   4.,   6.,   8.,  10.])
A.reshape(2, 3)
[output]  array([[  0.,   2.,   4.],
                [  6.,   8.,  10.]])
A.resize(2, 3)
[output]  array([[  0.,   2.,   4.],
                [  6.,   8.,  10.]])
resize()和reshape()都能改变数组的维度,reshape()函数返回的是一个已修改好维度的数组,并不改变原数组,resize()函数会直接对原数组进行修改
  • astype()函数改变数组的类型
B = A.astype(np.int)
[output]  array([[ 0,  2,  4],
                [ 6,  8, 10]])
  • ravel(), flatten()函数,将数组转化成一维数组
B.ravel()
[output]  array([ 0,  2,  4,  6,  8, 10])
B.flatten()
[output]  array([ 0,  2,  4,  6,  8, 10])
ravel()和flatten()函数返回的是一个一维的数组,但是并不改变原数组
  • min(), max(), mean(), sum()函数
B.min()
[output]  0
B.min(axis=0)
[output]  array([0, 2, 4])
B.min(axis=1)
[output]  array([0, 6])
B.max()
[output]  10
B.max(axis=0)
[output]  array([ 6,  8, 10])
B.max(axis=1)
[output]  array([ 4, 10])
  • argmax()函数:得到特定维度最大值的下标
C = np.argmax(B, axis=0)
[output]  array([1, 1, 1])
C = np.argmax(B, axis=1)
[output]  array([2, 2])
  • view(), copy()函数,对数组进行复制
A = np.arange(6).reshape(2, 3)
B = A.view()
B[0, 0] = 9999
A
[output]  array([[9999,    1,    2],
                [   3,    4,    5]])
B = A.copy()
B[0, 0] = 12345
A
[output]  array([[9999,    1,    2],
                [   3,    4,    5]])
view()是深复制,改变复制的数组的同时也会改变原数组,copy()是浅复制,改变复制的数组,不会改变原数组

4. 简单的运算

  • T转置,floor()函数:向下取整,ceil()函数:向上取整
  • dot()函数:点乘
  • 三角函数:cos(), sin()
  • add()函数,exp()函数,sqrt()函数
  • cumsum()函数:特定的维度的累加值
  • *,+,-,/运算

相关文章

网友评论

    本文标题:Numpy的常用方法(持续更新)

    本文链接:https://www.haomeiwen.com/subject/cybmtftx.html