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

numpy的创建方法和简单函数使用

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

numpy的创建方法和简单函数使用

import numpy as np
1.numpy的使用和array的属性
a=np.arange(10)
print(a)
print(type(a))
A=np.arange(10).reshape(2,5)
print(A)
[0 1 2 3 4 5 6 7 8 9]

[[0 1 2 3 4]
 [5 6 7 8 9]]
import math
resull=[]
b=[3,6,9]
for i in b:
    resull.append(math.sqrt(i))
print(resull)
[1.7320508075688772, 2.449489742783178, 3.0]
b=np.sqrt(a)
print(b)
[0.         1.         1.41421356 1.73205081 2.         2.23606798
 2.44948974 2.64575131 2.82842712 3.        ]
array的属性
np.shape(a) # 返回一个元组,里面10表示一维数组有10个元素
(10,)
a.shape
(10,)
np.shape(A) # 返回一个元组,里面(2,5)表示二维数组有2行5列
(2, 5)
A.shape
(2, 5)
np.size(a) # 表示数组中共有10个元素
10
a.size
10
np.size(A)# 表示数组中共有10个元素
10
A.size
10
np.ndim(a) # 表示数组维度1维
1
a.ndim
1
np.ndim(A) # 表示数组维度为2维
2
A.ndim
2
a.dtype # 表示数据类型
dtype('int32')
A.dtype
dtype('int32')
2.array数组创建(查看数组时几维数组看有多少个中括号[])
  • 创建一维数组 []
a=np.array([1,2,3,4,5])
print(a)
print(type(a))
[1 2 3 4 5]

  • 创建二维数组 [[]]
a=np.array([[1,2,3,4],[5,6,7,8]])
print(a)
print(type(a))
[[1 2 3 4]
 [5 6 7 8]]

  • 创建三维数组 [[[],[],[]]]
a=np.array([[[1,2,3],[4,5,6],[7,8,9]]])
a
array([[[1., 2., 3.],
        [4., 5., 6.],
        [7., 8., 9.]]])
  • array函数中dtype的使用(dtype用于定义数据的类型)
a=np.array([[[1,2,3],[4,5,6],[7,8,9]]],dtype=float)
a
array([[[1., 2., 3.],
        [4., 5., 6.],
        [7., 8., 9.]]])
  • array函数中ndim的使用(ndim用于定义创建几维数组3表示三维数组)
a=np.array([5,6,7],ndmin=3)
a
array([[[5, 6, 7]]])
3.使用arange创建数组(和range类似)
  • range(start,end,step)
  • arange(start,end,step,dtype) star起始值,默认0 end终止值(不包含) 俗称“左闭右开” step 步长 dtype类型

使用arange创建一维数组

a=np.arange(1,11)
print(a)
[ 1  2  3  4  5  6  7  8  9 10]

设置step步长

a=np.arange(1,11,2)
print(a)
[1 3 5 7 9]

设置dtype

a=np.arange(1,11,2,dtype=float)
print(a)
[1. 3. 5. 7. 9.]

创建二维数组

a=np.arange(1,26).reshape(5,5)
print(a)
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]
 [21 22 23 24 25]]
4.随机数创建random
  • 随机小数创建一维数组[0.0,1.0)
a=np.random.random(size=5)
print(a)
[0.76575635 0.4622679  0.90888017 0.10400718 0.44326595]
  • 随机小数创建二维数组[0.0,1.0)
a=np.random.random(size=(3,4)) # 三行四列
print(a)
[[0.08961231 0.53617719 0.57359731 0.59341485]
 [0.70260249 0.4702532  0.02616169 0.9761873 ]
 [0.14885767 0.53219576 0.81927635 0.06738613]]
  • 随机小数创建三维数组[0.0,1.0)
a=np.random.random(size=(2,3,4)) # 表示2个三行四列
print(a)
[[[0.94210883 0.77365523 0.78644543 0.46229632]
  [0.93988891 0.00098664 0.06442574 0.19233556]
  [0.05869636 0.40118242 0.73710361 0.94576341]]

 [[0.66967561 0.43679552 0.77381332 0.07542394]
  [0.6531141  0.7895201  0.15254746 0.55551022]
  [0.22677999 0.43319106 0.59128927 0.43017043]]]
  • 随机整数创建一维数组 randint
a=np.random.randint(6,size=10) # 生成10个数,范围在0-6不包含6之间
print(a)
[4 4 4 5 0 1 1 3 3 5]
  • 随机整数二维数组 randint
a=np.random.randint(1,6,size=(2,3)) # 两行三列
print(a)
[[4 4 5]
 [4 3 1]]
  • 随机小数三维数组
a=np.random.random(size=(2,3,3))*10 # 两个三行三列
print(a)
print(type(a))
print(a.dtype) # 数组默认数据类型
[[[3.11048362 8.52335013 2.32628772]
  [4.65860357 9.12426174 3.98919878]
  [3.56791147 1.20368434 2.50500546]]

 [[9.47917872 9.42005041 9.90414945]
  [1.34195861 3.24970056 9.00671707]
  [6.94890604 8.0000247  6.8913351 ]]]

float64
  • 随机生成标准正态分布 randn 期望为0.0,方差为1.0
# 一维数组
a=np.random.randn(4)
print(a)
[ 0.81410113  0.16452272 -0.42512614  1.31135624]
# 二维数组
a=np.random.randn(2,3)
print(a)
[[ 0.89155777 -0.79185195 -1.80922833]
 [ 0.44119787  1.0291374  -0.09723107]]
# 三维数组
a=np.random.randn(2,3,4)
print(a)
[[[-0.15049787  0.16932904  0.21391991  0.81210993]
  [ 0.39586213  1.02809831 -1.60976429  1.06427719]
  [ 0.48000161  2.02028157  0.4371479   0.84889536]]

 [[ 0.18759196 -0.25953362 -0.02832321  1.18824099]
  [-1.39171987 -1.04206583  0.76886666  1.73914125]
  [ 1.13091941 -0.89219323  0.72669587 -0.04163825]]]
  • 指定期望和方差的正态分布 normal loc=0.0 期望 scale=1.0 方差 size=NOne 维度
# 一维数组 期望为0.0  方差为1.0
a=np.random.normal(size=5)
print(a)
[-1.28225284 -0.18262699  1.95744626 -1.48940848 -0.31117008]
# 二维数组 期望为2 方差为3  
a=np.random.normal(2,3,size=(3,3))
print(a)
[[-2.42635578  6.06350409  6.12848831]
 [-0.56033776 -0.28162224  4.09917604]
 [-0.37305497  4.77686604  5.244218  ]]
5. ones和ones_like
np.ones(10,dtype=int) # 元素全部是1
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
np.ones((3,4))
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])
np.ones_like(a) # 根据传入的变量创建出和它一样形状的数组
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
np.ones_like(A)
array([[1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1]])
6.zeros和zeros_like
np.zeros(10,dtype=int) # 数据全部是0
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
np.zeros((5,6))
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.]])
np.zeros_like(a)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
np.zeros_like(A)
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
7.empty和empty_like
  • 数组数据没有定义,可能是随机数,也可能是0,不能使用数组中的数值
np.empty(15)
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.empty((2,3))
array([[0., 0., 0.],
       [0., 0., 0.]])
np.empty_like(a)
array([-1384334336,         715,           0,           0,     7340142,
           6619182,           0,           0,           0,           0])
np.empty_like(A)
array([[-1384334336,         715,   538970739,   757932064,   757935405],
       [  757935405,   538976266,   975206432,  1920098592,  1818196321]])
8.full和full_like
np.full(10,666) # 指定数组元素值为666
array([666, 666, 666, 666, 666, 666, 666, 666, 666, 666])
np.full((2,5),999)
array([[999, 999, 999, 999, 999],
       [999, 999, 999, 999, 999]])
np.full_like(a,111)
array([111, 111, 111, 111, 111, 111, 111, 111, 111, 111])
np.full_like(A,777)
array([[777, 777, 777, 777, 777],
       [777, 777, 777, 777, 777]])
9.数组间的运算
A=np.random.randint(1,10,size=(2,5))
A
array([[9, 2, 6, 9, 9],
       [4, 8, 1, 3, 4]])
B=np.arange(10).reshape(2,5)
B
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
C=np.arange(6).reshape(2,3)
C
array([[0, 1, 2],
       [3, 4, 5]])
A+B # 数组要一致才能进行运算
array([[ 9,  3,  8, 12, 13],
       [ 9, 14,  8, 11, 13]])
A-B
array([[ 9,  1,  4,  6,  5],
       [-1,  2, -6, -5, -5]])
A*2
array([[18,  4, 12, 18, 18],
       [ 8, 16,  2,  6,  8]])
A-C
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in ()
----> 1 A-C


ValueError: operands could not be broadcast together with shapes (2,5) (2,3) 
np.sin(A)
array([[ 0.41211849,  0.90929743, -0.2794155 ,  0.41211849,  0.41211849],
       [-0.7568025 ,  0.98935825,  0.84147098,  0.14112001, -0.7568025 ]])
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294440.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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