首页 > 其他分享 >NumPy科学计算库学习_001_创建NumPy数组的各种方法

NumPy科学计算库学习_001_创建NumPy数组的各种方法

时间:2023-01-03 06:33:04浏览次数:38  
标签:rand arr dim 科学计算 random print 001 np NumPy

引入模块

import numpy as np

创建元素全部是0/1的NumPy数组

代码结构

np.zeros(shape=n)
np.ones(shape=n)

案例

zeros_np_arr_1_dim = np.zeros(shape=13)
zeros_np_arr_2_dim = np.zeros(shape=(2,3))
zeros_np_arr_3_dim = np.zeros(shape=(2,3,2))
# 4维、5维...

ones_np_arr_1_dim = np.ones(shape=13)
ones_np_arr_2_dim = np.ones(shape=(2,3))
ones_np_arr_3_dim = np.ones(shape=(2,3,2))
# 4维、5维...

print("【zeros_np_arr_1_dim】\n", zeros_np_arr_1_dim)
print("【zeros_np_arr_2_dim】\n", zeros_np_arr_2_dim)
print("【zeros_np_arr_3_dim】\n", zeros_np_arr_3_dim)

print("【ones_np_arr_1_dim】\n", ones_np_arr_1_dim)
print("【ones_np_arr_2_dim】\n", ones_np_arr_2_dim)
print("【ones_np_arr_3_dim】\n", ones_np_arr_3_dim)
【zeros_np_arr_1_dim】
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
【zeros_np_arr_2_dim】
 [[0. 0. 0.]
 [0. 0. 0.]]
【zeros_np_arr_3_dim】
 [[[0. 0.]
  [0. 0.]
  [0. 0.]]

 [[0. 0.]
  [0. 0.]
  [0. 0.]]]
【ones_np_arr_1_dim】
 [1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
【ones_np_arr_2_dim】
 [[1. 1. 1.]
 [1. 1. 1.]]
【ones_np_arr_3_dim】
 [[[1. 1.]
  [1. 1.]
  [1. 1.]]

 [[1. 1.]
  [1. 1.]
  [1. 1.]]]

随机生成NumPy整数数组

代码结构

np.random.randint(a, b, size=n)
# [a,b)区间内随机生成size为n的整数数组,size可以为1维、2维、3维等。
# np.random.randint(a, size=n)中,范围为:[0, a)

rand_int_1_dim = np.random.randint(-3,10,size=10)
rand_int_1_dim_no_high = np.random.randint(4,size=10)
rand_int_2_dim = np.random.randint(0,10,size=(2,3))
rand_int_3_dim = np.random.randint(0,10,size=(2,3,4))

print("【rand_int_1_dim】\n",rand_int_1_dim)
print("【rand_int_1_dim_no_high】\n", rand_int_1_dim_no_high)
print("【rand_int_2_dim】\n",rand_int_2_dim)
print("【rand_int_3_dim】\n",rand_int_3_dim)
【rand_int_1_dim】
 [ 0  9 -3 -1 -3 -1  9  5  9  0]
【rand_int_1_dim_no_high】
 [2 1 1 0 0 1 1 0 1 0]
【rand_int_2_dim】
 [[2 9 1]
 [7 4 6]]
【rand_int_3_dim】
 [[[7 5 7 6]
  [7 9 6 3]
  [9 8 3 7]]

 [[9 1 2 0]
  [1 4 5 3]
  [1 2 7 6]]]

创建元素全部是a(a可自定义)的NumPy数组

np.full(shape=a,fill_value=b) a可以是1维、2维等;b为自定义元素

np_full_1_dim = np.full(shape=10,fill_value=9.1)
np_full_2_dim = np.full(shape=(2,3),fill_value='message')
print("【np_full_1_dim】\n",np_full_1_dim)
print("【np_full_2_dim】\n",np_full_2_dim)
【np_full_1_dim】
 [9.1 9.1 9.1 9.1 9.1 9.1 9.1 9.1 9.1 9.1]
【np_full_2_dim】
 [['message' 'message' 'message']
 ['message' 'message' 'message']]

创建随机正态分布(高斯分布)的NumPy数组

np.random.randn(n,[p],[q],...)

1维:填写n的参数;2维:填写n、p参数;3维:填写n、p、q参数;...

正态分布:

  • 概率密度函数:随机变量X服从一个位置参数(平均值):\(\mu\)、尺度参数(标准差):\(\sigma\) 的概率分布。

\[f(x)=\frac{1}{\sqrt{2\pi}\sigma}{e}^{-\frac{(x-\mu)^{2}}{2\sigma^2}} \]

  • 正态分布时:标准差=1,标准差代表波动。符号为\(\sigma\);平均值=0,符号为\(\mu\)

\[f(x)=\frac{1}{\sqrt{2\pi}}{e}^{-\frac{x^{2}}{2}} \]

rand_randn_1_dim = np.random.randn(10) # 10个正态分布
rand_randn_2_dim =np.random.randn(2,3) # 2行3列正态分布
rand_randn_3_dim = np.random.randn(2,3,4) # 2个3行4列正态分布

print("【rand_randn_1_dim】\n",rand_randn_1_dim)
print("【rand_randn_2_dim】\n",rand_randn_2_dim)
print("【rand_randn_3_dim】\n",rand_randn_3_dim)
【rand_randn_1_dim】
 [-0.26134334 -1.24007415 -0.49224918 -1.08961857 -1.05376762  0.92694362
 -0.44054338 -1.61763091 -1.14292796  0.20244724]
【rand_randn_2_dim】
 [[-1.28165352 -0.52322378  1.1849937 ]
 [ 0.28513139  0.09189967  1.37145105]]
【rand_randn_3_dim】
 [[[ 0.84524153  1.16178073 -0.23711214  0.17428454]
  [-0.11779899 -0.90749366  0.74811081 -1.12089057]
  [-0.09068517  0.61026182  1.42552725  0.20360365]]

 [[-0.2722333   0.86113041  0.43176374  0.11032569]
  [-0.87499484  1.28825678 -0.7696696  -1.09852633]
  [-0.35172055  2.50484214  0.17436942  0.8619142 ]]]

创建一个等差数列

  • np.linspace(a,b,c):区间为[a,b],一共分成c份,生成一个等差数列。

  • np.arange(start=a,stop=b,step=c):区间为[a,b),每步为c,生成一个等差数列。

linspace_arr = np.linspace(1,100,10)
arange_arr = np.arange(start=0,stop=20,step=3)
print("【linspace_arr】\n",linspace_arr)
print("【arange_arr,arange_arr】\n",arange_arr)
【linspace_arr】
 [  1.  12.  23.  34.  45.  56.  67.  78.  89. 100.]
【arange_arr,arange_arr】
 [ 0  3  6  9 12 15 18]

创建一个等比数列

  • np.logspace(a,b,base=c,num=d):区间为[\(c^{a}\), \({c^b}\)],c为底数,d为数组的元素个数,生成一个等差数列。
logspace_arr = np.logspace(0,10,base=2,num=11)
print("【logspace_arr】\n",logspace_arr)
【logspace_arr】
 [   1.    2.    4.    8.   16.   32.   64.  128.  256.  512. 1024.]

创建一个size可自定义的,元素类型为float的NumPy数组

  • np.random.random(size=a):a可以说1维、2维、3维等。
rand_rand_1_dim = np.random.random(size=(2))
rand_rand_2_dim = np.random.random(size=(2,3))
rand_rand_3_dim = np.random.random(size=(2,3,2))

print("【rand_rand_1_dim】\n",rand_rand_1_dim)
print("【rand_rand_2_dim】\n",rand_rand_2_dim)
print("【rand_rand_3_dim】\n",rand_rand_3_dim)
【rand_rand_1_dim】
 [0.06893555 0.65303294]
【rand_rand_2_dim】
 [[0.38788578 0.70816777 0.23989662]
 [0.31511452 0.08127854 0.69369976]]
【rand_rand_3_dim】
 [[[0.91108915 0.71183959]
  [0.82619817 0.17828404]
  [0.09082879 0.67872793]]

 [[0.40652366 0.67206697]
  [0.10980257 0.49430899]
  [0.8548336  0.37354673]]]

设置输出不显示科学计数法

np.set_printoptions(suppress=True)

标签:rand,arr,dim,科学计算,random,print,001,np,NumPy
From: https://www.cnblogs.com/cloucodeforfun/p/16672470.html

相关文章

  • 收藏&下载 | 最全的NumPy 教程,没有之一
    译者:飞龙   https://www.tutorialspoint.com/numpy/index.htm友情提示:本文较长,是教程的一部分,值得收藏,文末提供下载方式哦!觉得内容精彩一定要点一下“好看”哦!NumPy-......
  • NumPy 图解入门
    最近真是很忙,python的学习都搁置了好久了,​​NumPy​​​和​​Pandas​​一直都在入门过程中。总不能一直这样,赶紧抽时间往前推进,也记录一下笔记。整理学习内容是巩固和......
  • NumPy - 入门
    目录NumPy,是NumericalPython的简称,它是目前Python数值计算中最为重要的基础包。大多数计算包都提供了基于NumPy的科学函数功能,将NumPy的数组对象作为数据交换的通......
  • VisualStudio2015安装不上的解决方法_选择对应msi_依然报错继续选择---VisualStudio20
    这个visualstudio网上竟然有卖的,真的是太~咱啥也不说了~好了说解决办法吧;1.这里完整版大小挺大的6G多,但是这里我们找的有可能是只有3.8G左右的,这个版本的就是有文件损坏......
  • 操作系统实战45讲00017
    你好,我是LMOS。今天我们继续来研究Linux的初始化流程,为你讲解如何解压内核,然后讲解Linux内核第一个C函数。最后,我们会用Linux的第一个用户进程的建立来收尾。如果用你上......
  • 操作系统实战45讲00018
    你好,我是LMOS。内存跟操作系统的关系,就像土地和政府的关系一样。政府必须合理规划这个国家的土地,才能让人民安居乐业。为了发展,政府还要进而建立工厂、学校,发展工业和教育......
  • 操作系统实战45讲00019
    你好,我是LMOS。上节课,我们确定了用分页方式管理内存,并且一起动手设计了表示内存页、内存区相关的内存管理数据结构。不过,虽然内存管理相关的数据结构已经定义好了,但是我们......
  • 操作系统实战45讲00010
    你好,我是LMOS。我们在前面的课程中探索了,开发操作系统要了解的最核心的硬件——CPU、MMU、Cache、内存,知道了它们的工作原理。在程序运行中,它们起到了至关重要的作用。在......
  • 操作系统实战45讲00012
    你好,我是LMOS。经过前面那么多课程的准备,现在我们距离把我们自己操作系统跑起来,已经是一步之遥了。现在,你是不是很兴奋,很激动?有这些情绪说明你是喜欢这门课程的。接下来......
  • 操作系统实战45讲00014
    你好,我是LMOS。上节课我们动手实现了自己的二级引导器。今天这节课我们将进入二级引导器,完成具体工作的环节。在二级引导器中,我们要检查CPU是否支持64位的工作模式、收集......