我爱编程

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

2018-02-17  本文已影响0人  best_coder

1. 创建数组

 vector = np.array([1, 2, 3, 4])  一维数组
 
 vector = np.array([[], [], []])  多维数组
 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])
arr = np.random.random(3)
[output]  array([ 0.53340376,  0.38891447,  0.46406961])
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)
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. 数组的属性

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. 常见的函数

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()函数会直接对原数组进行修改
B = A.astype(np.int)
[output]  array([[ 0,  2,  4],
                [ 6,  8, 10]])
B.ravel()
[output]  array([ 0,  2,  4,  6,  8, 10])
B.flatten()
[output]  array([ 0,  2,  4,  6,  8, 10])
ravel()和flatten()函数返回的是一个一维的数组,但是并不改变原数组
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])
C = np.argmax(B, axis=0)
[output]  array([1, 1, 1])
C = np.argmax(B, axis=1)
[output]  array([2, 2])
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. 简单的运算

上一篇下一篇

猜你喜欢

热点阅读