Numpy粗略

numpy

1.numpy 的属性

导入numpy

import numpy as np

创建一个2x3矩阵。

>>> arr = np.array([[1,2,3],[4,5,6]])
>>> arr
array([[1, 2, 3],
       [4, 5, 6]])

属性

>>> arr.ndim		#行数
2
>>> arr.shape       #形状
(2, 3)
>>> arr.size		#元素
6

2.numpy----array

创建的几种形式

#一维
>>> a = np.array([1,2,3])
>>> a
array([1, 2, 3])
#三维
a = np.ones(36).reshape(4,3,3)
>>> a
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.],
        [1., 1., 1.]],

       [[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]]])
#指定类型
>>> a.dtype
dtype('int32')
>>> a = np.array([1,2,3], dtype=np.int64)
>>> a.dtype
dtype('int64')
#all0
a = np.zeros((2,3))
>>> a
array([[0., 0., 0.],
       [0., 0., 0.]])
#all1
>>> a = np.ones((2,3))
>>> a
array([[1., 1., 1.],
       [1., 1., 1.]])
#空
 a = np.empty((6,3))
>>> a
array([[6.23042070e-307, 4.67296746e-307, 1.69121096e-306],
       [1.33509100e-307, 1.89146896e-307, 7.56571288e-307],
       [3.11525958e-307, 1.24610723e-306, 1.37962320e-306],
       [1.29060871e-306, 2.22518251e-306, 1.33511969e-306],
       [1.78022342e-306, 1.05700345e-307, 1.11261027e-306],
       [9.34609111e-307, 1.78019625e-306, 2.22522596e-306]])
#范围
a = np.arange(0, 50, 5)
>>> a
array([ 0,  5, 10, 15, 20, 25, 30, 35, 40, 45])
>>> a = np.arange(0, 50, 5).reshape((5, 2))
>>> a
array([[ 0,  5],
       [10, 15],
       [20, 25],
       [30, 35],
       [40, 45]])
#线段
>>> a = np.linspace(1, 10, 5)
>>> a
array([ 1.  ,  3.25,  5.5 ,  7.75, 10.  ])
#随机
>>> a = np.random.random((3,4))
>>> a
array([[0.99823673, 0.90458893, 0.04834939, 0.92980233],
       [0.71134664, 0.72706356, 0.98548836, 0.3914585 ],
       [0.50880033, 0.25018314, 0.12339585, 0.80470784]])

3.numpy运算

>>> a = np.arange(1, 10).reshape(3, 3)
>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> b = np.arange(11, 20).reshape(3, 3)
>>> b
array([[11, 12, 13],
       [14, 15, 16],
       [17, 18, 19]])   
#+
>>> a + b
array([[12, 14, 16],
       [18, 20, 22],
       [24, 26, 28]])
#-
>>> a - b
array([[-10, -10, -10],
       [-10, -10, -10],
       [-10, -10, -10]])
#*
>>> a * b
array([[ 11,  24,  39],
       [ 56,  75,  96],
       [119, 144, 171]])
#/
>>> a / b
array([[0.09090909, 0.16666667, 0.23076923],
       [0.28571429, 0.33333333, 0.375     ],
       [0.41176471, 0.44444444, 0.47368421]])
#判断
>>> a < 8
array([[ True,  True,  True],
       [ True,  True,  True],
       [ True, False, False]])
#系数*
>>> a * 3
array([[ 3,  6,  9],
       [12, 15, 18],
       [21, 24, 27]])
#点乘
>>> np.dot(a, b)
array([[ 90,  96, 102],
       [216, 231, 246],
       [342, 366, 390]])
>>> a.dot(b)
array([[ 90,  96, 102],
       [216, 231, 246],
       [342, 366, 390]])
>>> a
array([[0.99823673, 0.90458893, 0.04834939, 0.92980233],
       [0.71134664, 0.72706356, 0.98548836, 0.3914585 ],
       [0.50880033, 0.25018314, 0.12339585, 0.80470784]])
>>> sum(a)
array([2.2183837 , 1.88183563, 1.1572336 , 2.12596867])
>>> np.sum(a)
7.383421595487194
>>> np.min(a)
0.04834939093017865
>>> np.max(a)
0.9982367253794127
>>> np.sum(a, axis=0)
array([2.2183837 , 1.88183563, 1.1572336 , 2.12596867])
>>> np.sum(a, axis=1)
array([2.88097738, 2.81535706, 1.68708716])

>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> np.argmin(a)
0
>>> np.argmax(a)
8
#平均数
>>> np.mean(a)
5.0
#中位数
>>> np.median(a)
5.0
#累加
>>> np.cumsum(a)
array([ 1,  3,  6, 10, 15, 21, 28, 36, 45], dtype=int32)
#差值
>>> np.diff(a)
array([[1, 1],
       [1, 1],
       [1, 1]])
>>> np.sort(a)
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
#转置
>>> np.transpose(a)
array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])
>>> np.clip(a, 4, 8)
array([[4, 4, 4],
       [4, 5, 6],
       [7, 8, 8]])

4.索引

>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> a[1]
array([4, 5, 6])
>>> a[0][1]
2
>>> a[0, 1]
2
>>> a[0, 1:2]
array([2])
>>> for r in a:
	print(r)

	
[1 2 3]
[4 5 6]
[7 8 9]
>>> a.flatten()
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> for i in a.flat:
	print(i)

	
1
2
3
4
5
6
7
8
9

5.array合并

>>> a = np.array([1,2,3])
>>> b = np.array([4,5,6])

>>> c = np.vstack((b, a))
>>> c
array([[4, 5, 6],
       [1, 2, 3]])
>>> c = np.hstack((a, b))
>>> c
array([1, 2, 3, 4, 5, 6])
>>> c[:, np.newaxis]
array([[1],
       [2],
       [3],
       [4],
       [5],
       [6]])
>>> np.concatenate((a,a,a,b,b))
array([1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 5, 6, 4, 5, 6])

6.分割

>>> a = np.random.random((3,4))
>>> a
array([[0.33656031, 0.46727607, 0.78883281, 0.18007219],
       [0.8953377 , 0.9237175 , 0.15479897, 0.59258934],
       [0.69871501, 0.67408845, 0.24632351, 0.92759847]])
>>> np.split(a, 2, axis=1)
[array([[0.33656031, 0.46727607],
       [0.8953377 , 0.9237175 ],
       [0.69871501, 0.67408845]]), array([[0.78883281, 0.18007219],
       [0.15479897, 0.59258934],
       [0.24632351, 0.92759847]])]
>>> np.array_split(a, 2, axis=0)
[array([[0.33656031, 0.46727607, 0.78883281, 0.18007219],
       [0.8953377 , 0.9237175 , 0.15479897, 0.59258934]]), array([[0.69871501, 0.67408845, 0.24632351, 0.92759847]])]
>>> np.vsplit(a, 3)
[array([[0.33656031, 0.46727607, 0.78883281, 0.18007219]]), array([[0.8953377 , 0.9237175 , 0.15479897, 0.59258934]]), array([[0.69871501, 0.67408845, 0.24632351, 0.92759847]])]
>>> a
array([[0.33656031, 0.46727607, 0.78883281, 0.18007219],
       [0.8953377 , 0.9237175 , 0.15479897, 0.59258934],
       [0.69871501, 0.67408845, 0.24632351, 0.92759847]])
>>> np.hsplit(a, 2)
[array([[0.33656031, 0.46727607],
       [0.8953377 , 0.9237175 ],
       [0.69871501, 0.67408845]]), array([[0.78883281, 0.18007219],
       [0.15479897, 0.59258934],
       [0.24632351, 0.92759847]])]

7.复制

>>> a = np.array([1,2,3,4])
>>> b = a
>>> c = a
>>> a[0] = 22
>>> b
array([22,  2,  3,  4])
>>> c
array([22,  2,  3,  4])
>>> b[0] = 10
>>> a
array([10,  2,  3,  4])
>>> c
array([10,  2,  3,  4])
>>> b = a.copy()
>>> b
array([10,  2,  3,  4])
>>> a[0] = 8
>>> b
array([10,  2,  3,  4])
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值