首页 > 其他分享 >numpy数组初始化方法总结

numpy数组初始化方法总结

时间:2023-03-19 11:34:21浏览次数:50  
标签:初始化 随机数 random print 随机 数组 np numpy size

1 使用list初始化

a=np.array([[1,2,3],[4,5,6]],dtype='float32')
#a=[[1. 2. 3.],[4. 5. 6.]]

2 赋值与复制

(1)赋值

a=np.array([1,2,3])
b=a
print(b is a) #True

b[0]=0
print(a) #[0 2 3]
print(b) #[0 2 3]
print(b is a) #True

在赋值情形下,b 和 a 指向同一块地址,b 改变,a 也随着改变 。

a=np.array([1,2,3])
b=a[:2]
print(b is a) #False

b[0]=0
print(a) #[0 2 3]
print(b) #[0 2]

在使用切片时,切片改变,原数据也会改变。

(2)复制

a=np.array([1,2,3])
b=a.copy()
print(b is a) #False

b[0]=0
print(a) #[1 2 3]
print(b) #[0 2 3]

在复制情形下,b和a指向不同地址,b改变,a不会改变

3 随机数初始化

3.1 区间内随机数

(1)np.random.uniform(low=0.0, high=1.0, size=None)

简介:生成 [low,high) 内的 size 个随机数,默认 [0,1) 之间,size 是 int 型或元组

a=np.random.uniform() #产生[0,1)内的1个随机数
#a=0.1973408987805232

b=np.random.uniform(10,20,2) #产生[10,20)内的2个随机数
#b=[10.15492129 12.8762581]

c=np.random.uniform(1,5,(2,3)) #产生[1,5)内2*3个随机数
#c=[[1.89354111 4.01642541 1.63691704],[3.23261205 4.81380553 4.51288251]]

(2)np.random.rand(d0,d1,...,dn)

简介:生成 [0,1) 内的 d0*d1*...*dn 个浮点数,d0,d1,...,dn 表示数组维度

a=np.random.rand() #产生[0,1)内的1个随机数
#a=0.7114622255979923

b=np.random.rand(2) #产生[0,1)内的2个随机数
#b=[0.39094731 0.32324018]

c=np.random.rand(2,3) #产生[0,1)内的2*3个随机数
#c=[[0.30305566 0.70335946 0.71778137],[0.03069973 0.20145633 0.70092122]]

(3)np.random.randint(low, high=None, size=None, dtype=’l’)

简介:生成 [low,high) 内的 size 个整型随机数,默认1个 [0,low) 内的随机整数

a=np.random.randint(10) #产生[0,10)内的1个随机整数
#a=6

b=np.random.randint(10,20) #产生[10,20)内的1个随机整数
#b=14

c=np.random.randint(1,5,(2,3)) #产生[1,5)内的2*3个随机整数
#c=[[4 2 2],[3 2 1]]

3.2 随机全排列

(1) np.random.permutation(n)

简介:若 n 为 int,生成 0~n-1 的一个随机排列;若 n 为数组,生成此数组的一个随机排列

a=np.random.permutation(10)
#a=[5 9 6 8 7 4 0 3 1 2]

x=np.array([2.2,4.4,6.6,8.8])
b=np.random.permutation(x)  #x不变,b随机
#b=[6.6 2.2 4.4 8.8]

(2)np.random.shuffle(arr)

简介:将数组 arr 随机打乱

a=np.array([1,3,5,7,9,0,2,4,6,8])
np.random.shuffle(a)
#a=[6 5 9 8 0 3 4 2 1 7]

3.3 随机部分排列

np.random.choice(a, size=None, replace=True, p=None)

简介:若 a 为 int,从 0~a-1 中随机挑选 size 个数排列;若 a 为数组,则从此数组中随机挑选 size 个数排列。replace 表示是否允许元素重复

a=np.random.choice(10,7,replace=False)
#a=[2 7 0 1 8 4 3]

x=['a','b','c','d','e','f','g','h','i','j']
b=np.random.choice(x,5,replace=False)
#b=['b' 'd' 'c' 'i' 'e']

4 全0与全1初始化

a=np.zeros(5,dtype='int32')
#a=[0 0 0 0 0]

b=np.zeros((2,3),dtype='int32')
#b=[[0 0 0],[0 0 0]]

c=np.ones(5,dtype='int32')
#c=[1 1 1 1 1]

d=np.ones((2,3),dtype='int32')
#d=[[1 1 1],[1 1 1]]

5 等步长连续序列初始化

(1)np.arange(min,max,step=1)

简介:生成 [min,max) 之间步长为 step 的序列,步长默认为1

a=np.arange(2,6)
#a=[2 3 4 5]

b=np.arange(2,3,0.2)
#b=[2. 2.2 2.4 2.6 2.8]

(2)np.linspace(min,max,num=50)

简介:生成 [min,max] 之间长度为num的序列,长度默认为50

a=np.linspace(6,8,5)
#a=[6. 6.5 7. 7.5 8.]

b=np.linspace(1,99)
#b=
#[1.  3.  5.  7.  9.  11. 13. 15. 17. 19. 21. 23. 25. 27. 29. 31. 33. 35.
# 37. 39. 41. 43. 45. 47. 49. 51. 53. 55. 57. 59. 61. 63. 65. 67. 69. 71.
# 73. 75. 77. 79. 81. 83. 85. 87. 89. 91. 93. 95. 97. 99.]

​ 说明:本文转自numpy数组初始化方法总结

标签:初始化,随机数,random,print,随机,数组,np,numpy,size
From: https://www.cnblogs.com/zhyan8/p/17232655.html

相关文章

  • tensorflow中高维数组乘法运算
    1前言声明:本博客里的数组乘法运算是指矩阵乘法运算,不是对应元素相乘。在线性代数或高等代数中,我们学习了矩阵乘法,那么,什么样的高维数组才能相乘?tensorflow又是如何定义......
  • python中两个不同shape的数组间运算规则
    1前言声明:本博客讨论的数组间运算是指四则运算,如:a+b、a-b、a*b、a/b,不包括a.dot(b)等运算,由于numpy和tensorflow中都遵循相同的规则,本博客以numpy为例。众所周......
  • 二维数组冒泡排序
    0.本文结构概述二维数组在内存中是线性存储二维数组排序(C语言代码)1.二维数组在内存中是线性存储2.二维数组排序(C语言代码)#include<stdio.h>intmain(intarg......
  • 长度最小的子数组|滑动窗口
    长度最小的子数组经典求子数组的一类题目,这里也给出两种方法,一种为暴力法,另一种为滑动窗口对应题目209.长度最小的子数组......
  • BM92 最长无重复子数组
    题目描述给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[......
  • 【LeeCode】26. 删除有序数组中的重复项
    【题目描述】给你一个 升序排列 的数组 ​​nums​​​ ,请你​​ 原地​​ 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 ......
  • Mac工作环境初始化
    目录触摸板配置命令行配置常用软件日常办公文件编辑日常开发开发环境配置集成环境配置IDEA配置优化IDEA默认配置插件常用功能配置VSCode配置初始配置补充快捷键配置文件远......
  • JS数组reduce()方法详解及高级技巧
        参考:https://www.cnblogs.com/webSnow/p/15262337.html......
  • 树状数组入门
    前言树状数组作为维护序列区间修改与查询的利器是每一个“OIer”都应该要掌握的知识点今天,我们来详细的整理一下树状数组的知识脉络目录一.树状数组简介二.树状数......
  • 代码随想录第二天 | 有序数组的平方_leetcode 长度最小的子数组_leetcode 螺旋矩阵
    有序数组的平方考虑到数组中元素存在负数的情况,数组元素平方之后,最大值存在于新数组的两边,这里采用“双指针法”可以满足时间复杂度为O(n)若对数组中的元素平方之后再去......