栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy常见操作汇总

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy常见操作汇总

numpy常见操作汇总
  • 本质是多维数组
import numpy as np
# numpy版本
np.__version__
'1.21.2'

python list

list1 = list(range(10))
list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list1[5]='hello list'
list1
[0, 1, 2, 3, 4, 'hello list', 6, 7, 8, 9]

array

import array
arr1 = array.array('i',list(range(10)))
arr1
array('i', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr1[5]='hello array'
arr1
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

 in 
----> 1 arr1[5]='hello array'
      2 arr1


TypeError: an integer is required (got type str)
arr1[5] = 78
arr1
array('i', [0, 1, 2, 3, 4, 78, 6, 7, 8, 9])

numpy.ndarray

arr = np.array(list(range(10)))
arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
type(arr)
numpy.ndarray
arr.dtype
dtype('int32')
arr[3] = 33
arr
array([ 0,  1,  2, 33,  4,  5,  6,  7,  8,  9])
arr[2]
2
arr[2] = 'hello ndarray'
arr[2]
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in 
----> 1 arr[2] = 'hello ndarray'
      2 arr[2]


ValueError: invalid literal for int() with base 10: 'hello ndarray'
arr[3] = 13.4
arr
array([ 0,  1,  2, 13,  4,  5,  6,  7,  8,  9])
arr1 = np.array([1,2,3.0])
arr1
array([1., 2., 3.])
arr1.dtype
dtype('float64')
arr2 = np.array([1,2,3],dtype=float)
arr2.dtype
dtype('float64')
def p_test(n):
    a = [i**2 for i in range(n)]
    b = [i**3 for i in range(n)]
    c = []
    for i in range(n):
        c.append(a[i]+b[i])
    return c
p_test(10)
[0, 2, 12, 36, 80, 150, 252, 392, 576, 810]
# 用numpy实现上述函数功能
def p_test1(n):
    a = np.arange(n) ** 2
    b = np.arange(n) ** 3
    c = a + b
    return c
p_test1(10)
array([  0,   2,  12,  36,  80, 150, 252, 392, 576, 810], dtype=int32)

比较用时,numpy更快

%time res = p_test(10000000)
Wall time: 16.7 s
%time res = p_test1(10000000)
Wall time: 363 ms

矩阵和随机数的产生

np.array([1,2,3])
array([1, 2, 3])
np.array(range(10))
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(2,20,2)
array([ 2,  4,  6,  8, 10, 12, 14, 16, 18])
np.arange(2,20,0.3)
array([ 2. ,  2.3,  2.6,  2.9,  3.2,  3.5,  3.8,  4.1,  4.4,  4.7,  5. ,
        5.3,  5.6,  5.9,  6.2,  6.5,  6.8,  7.1,  7.4,  7.7,  8. ,  8.3,
        8.6,  8.9,  9.2,  9.5,  9.8, 10.1, 10.4, 10.7, 11. , 11.3, 11.6,
       11.9, 12.2, 12.5, 12.8, 13.1, 13.4, 13.7, 14. , 14.3, 14.6, 14.9,
       15.2, 15.5, 15.8, 16.1, 16.4, 16.7, 17. , 17.3, 17.6, 17.9, 18.2,
       18.5, 18.8, 19.1, 19.4, 19.7])
np.zeros(10,dtype=int)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
np.zeros(10)
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros(shape=(3,5),dtype=int)
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
np.ones(10)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.ones(10,dtype=int)
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
np.ones(shape=(4,4),dtype=int)
array([[1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1]])
np.full(10,99)
array([99, 99, 99, 99, 99, 99, 99, 99, 99, 99])
np.full((3,5),99)
array([[99, 99, 99, 99, 99],
       [99, 99, 99, 99, 99],
       [99, 99, 99, 99, 99]])

等差数列

np.linspace(0,10,10)
array([ 0.        ,  1.11111111,  2.22222222,  3.33333333,  4.44444444,
        5.55555556,  6.66666667,  7.77777778,  8.88888889, 10.        ])
np.linspace(0,10,10,dtype=int)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8, 10])

随机数

np.random.randint(0,20)
9
np.random.randint(0,10,size=5)
array([0, 8, 0, 5, 1])
np.random.randint(0,10,size=(3,5))
array([[9, 4, 9, 1, 6],
       [9, 8, 7, 8, 3],
       [6, 0, 3, 6, 4]])
# 控制随机数不变
np.random.seed(2)
np.random.randint(1,20,size=(4,5))
array([[ 9, 16, 14,  9, 12],
       [19, 12,  9,  8,  3],
       [18, 12, 16,  6,  8],
       [ 4,  7,  5, 11, 12]])
np.random.random()
0.7197542323569591
np.random.random((3,5))
array([[0.25849809, 0.54620732, 0.40730783, 0.17698462, 0.96963241],
       [0.29701836, 0.28786882, 0.11619332, 0.18172704, 0.49428977],
       [0.56576513, 0.22183517, 0.76749117, 0.57730807, 0.16782331]])

ndarray基础操作

a = np.ones((3,5))
a
array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])
a.ndim
2
a.shape
(3, 5)
a.size
15
a.reshape(5,3)
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

取值

x = np.arange(15).reshape(3,5)
x
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
x[0]
array([0, 1, 2, 3, 4])
x[-1]
array([10, 11, 12, 13, 14])
x[0][1]
1
x[(0,1)]
1
x[0,1]
1
x[(0,1),(2,3)]
array([2, 8])

切片

y = np.arange(10)
y
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y[0:5]
array([0, 1, 2, 3, 4])
y[:5]
array([0, 1, 2, 3, 4])
y[5:]
array([5, 6, 7, 8, 9])
y[0:8:2]
array([0, 2, 4, 6])
y[::2]
array([0, 2, 4, 6, 8])
y[::-1]
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
a = np.arange(16).reshape(4,4)
a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
# 取前两行,前三列
a[0:2,0:3]
array([[0, 1, 2],
       [4, 5, 6]])
a[:2,:3]
array([[0, 1, 2],
       [4, 5, 6]])
a[:2,::2]
array([[0, 2],
       [4, 6]])
a[::-1,::-1]
array([[15, 14, 13, 12],
       [11, 10,  9,  8],
       [ 7,  6,  5,  4],
       [ 3,  2,  1,  0]])
a.T
array([[ 0,  4,  8, 12],
       [ 1,  5,  9, 13],
       [ 2,  6, 10, 14],
       [ 3,  7, 11, 15]])

矩阵合并

x1 = np.array([[20,178],[23,180]])
x1
array([[ 20, 178],
       [ 23, 180]])
x2 = np.array([[1],[0]])
x2
array([[1],
       [0]])
x = np.concatenate([x1,x2],axis=1)
x
array([[ 20, 178,   1],
       [ 23, 180,   0]])

聚合操作

m = np.arange(16).reshape(4,4)
m
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
np.sum(m)
120
np.max(m)
15
np.min(m)
0
np.mean(m)
7.5
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/344619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号