首页 > 其他分享 >Numpy中生成数组的常用方法

Numpy中生成数组的常用方法

时间:2024-09-06 18:20:35浏览次数:16  
标签:mat random 生成 high print low 数组 np Numpy

目录

  • 1. np.arrage()
  • 2.np.arange()
  • 3.ones/empty/zeros函数
  • 4.np.random
    • np.random.rand():
    • np.random.random():
    • np.random.randn()
    • np.random.randint(low,high,size,dtype)
    • np.random.uniform(low,high,size)
    • np.linspace

1. np.arrage()

import numpy as np
## 下面两种结果相同
arr1 =np.array([1,2,3])
arr11 =np.array((1,2,3))

## 下面两种结果相同
arr2 =np.array([[1,2,3],[2,3,4]])
arr22 =np.array(((1,2,3),(2,3,4)))

#可通过reshape来改变形状
arr3 =np.array([[1,2,3],[2,3,4]]).reshape(3,2)

print(arr1)
print(arr11)
print(arr2)
print(arr22)
print(arr3)

[1 2 3]
[1 2 3]
[[1 2 3]
 [2 3 4]]
[[1 2 3]
 [2 3 4]]
[[1 2]
 [3 2]
 [3 4]]


2.np.arange()

import numpy as np

arr1 =np.arange(4)


arr2= np.arange(1,6,2)


arr3 =np.arange(12).reshape((3,4))

print(arr1)

print(arr2)

print(arr3)

[0 1 2 3]
[1 3 5]
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

3.ones/empty/zeros函数

ones/empty/zeros函数方法使用近似,下面以zeros函数为例

import numpy as np

arr1 = np.zeros(6,dtype=np.int32)

#以下两种方式结果相同
arr2 = np.zeros((2,3),dtype=np.int32)
arr3 = np.zeros(6,dtype=np.int32).reshape(2,3)

print(arr1)
print(arr2)
print(arr3)

4.np.random

np.random.rand():

其返回结果中的每一个元素是服从0~1均匀分布的随机样本值,前闭后开;
如果不指定,那么生成的是一个浮点型的数;如果指定一个数,那么生成的是一个numpy.ndarray类型的数组;如果指定两个数字,那么生成的是一个二维的numpy.ndarray类型的数组

np.random.random():

和上面np.random.rand函数几乎一模一样,唯一的区别是(2,3),以元组的形式;

np.random.randn()

返回的结果是服从均值为0,方差为1的标准正态分布,而不是局限在0-1之间,也可以为负值,基本同np.random.rand()

import numpy as np

arr1 = np.random.rand()
arr11 = np.random.random()
print(arr1)
print(arr11)

arr2 = np.random.rand(2)
arr22 = np.random.random(2)
print(arr2)
print(arr22)

arr3 = np.random.rand(2,3)
arr33 = np.random.random((2,3))
print(arr3)
print(arr33)


# 以下是np.random.randn函数
arr4=np.random.randn()
arr5 =np.random.randn(2)
arr6=np.random.randn(2,3)
print(arr4)
print(arr5)
print(arr6)

0.5736311616541673
0.04652982548354134
[0.655061 0.134019]
[0.13199651 0.33791001]
[[0.39933954 0.41683012 0.077079  ] 
 [0.74220456 0.26096057 0.788995  ]]
[[0.86544624 0.70291938 0.62671325]
 [0.19132449 0.43554913 0.33147998]]
-2.014256955181612
[0.02856977 0.59193397]
[[ 0.9584476   0.45821351  1.24301107]
 [ 0.13390901 -1.49664702  0.49785627]]

np.random.randint(low,high,size,dtype)

返回结果:返回值是一个大小为size的数组,如果指定了low和high这两个参数,那么生成的元素值的范围为[low,high),不包括high;
如果不指定high这个参数,则生成的元素值的范围为[0,low)。如果不指定size这个参数,那么生成的元素值的个数只有一个。

import numpy as np

# 指定一个参数low
mat = np.random.randint(low=2)
print(mat)
 
# 指定low和high,生成一个[low,high)的元素值
mat = np.random.randint(low=1, high=8)
print(mat)
 
# 指定size大小,生成一个三行三列的二维数组,元素个数为3x3=9个
mat1 = np.random.randint(low=2, high=10, size=(3, 3))
# 指定size大小,生成一个[2,10),元素个数为3个的数组
mat2 = np.random.randint(2, 10, 3)
print(mat1)
print(mat2) 
mat = np.random.randint(low=2, high=10, size=(3, 3), dtype=np.uint8)
print(mat)

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

np.random.uniform(low,high,size)

uniform()可以生成服从指定范围内的均匀分布的元素。其返回值的元素类型为浮点型。需注意的是元素值的范围包含low,不包含high。

import numpy as np
# 指定一个参数low
mat = np.random.uniform()
print(mat)
 
# 指定low和high,生成一个[low,high)的元素值
mat = np.random.uniform(low=6, high=8)
print(mat)
 
# 指定size大小,生成一个两行三列的二维数组,元素个数为2x3=6个
mat = np.random.uniform(low=2, high=6, size=(2, 3))
print(mat)

0.19092554740670453
7.69760778806884
[[2.79287241 3.58444483 3.26800313]
 [4.9747663  4.18105176 2.03037405]]

np.linspace

np.linspace 是NumPy库中用于创建等间隔的数值序列的函数。其语法如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数含义如下:

start:序列的起始值。
stop:序列的结束值。
num:生成的样本数,默认为50。
endpoint:如果为True(默认值),则stop是最后一个样本。否则,不包括在内。如果endpoint为False,生成的样本数将为num。
retstep:如果为True,则返回(samples, step),其中step是样本之间的间距。
dtype:输出数组的数据类型。

示例:

import numpy as np
arr1 = np.linspace(1,10,5)
arr2 = np.linspace(1,10,6).reshape((2,3))
print(arr1)

print(arr2)

[ 1.    3.25  5.5   7.75 10.  ]
[[ 1.   2.8  4.6]
 [ 6.4  8.2 10. ]]

备注:如果想在特定范围内生成数据,可以采用np.random.randint或np.random.uniform方法

标签:mat,random,生成,high,print,low,数组,np,Numpy
From: https://blog.csdn.net/weixin_43597208/article/details/141952656

相关文章

  • 北大李戈团队提出:利用分片思想生成复杂函数的单测方法
    单元测试的目标是:通过对代码的最小单位进行独立测试,提高代码的可靠性,降低引入新错误的风险,确保代码功能的正确性,并提供一种持续验证的机制,帮助开发者保持代码的高质量和可维护性。环复杂度对待测函数的复杂度,有个指标:环复杂度,也称为圈复杂度或圈复杂度度量(CyclomaticComplexity......
  • 西游再现!一键部署 Flux 文生图大模型生成西游人物
    从花果山的灵石出世,到取经路上的九九八十一难,再到大闹天宫的惊心动魄……这些耳熟能详的西游场景,如今都能通过Flux模型,以超乎想象的细节和真实感呈现在你眼前。本次实验在函数计算中内置的flux.1-dev-fp8大模型,搭配Lora模型,无需复杂的配置,一键部署,你就能成为这场视觉盛宴的......
  • 【python创建字符串数组的几种方式】
    在Python中可以使用以下几种方式创建字符串数组:一、使用列表(list)列表可以存储多个字符串,类似于其他语言中的数组。#创建一个包含多个字符串的列表string_array=['apple','banana','cherry']print(string_array)二、使用元组(tuple)元组与列表类似,但元组是不可......
  • 指针之旅(3)—— 指针 与 数组
    目录1.数组名的两种意义2. 指针访问数组(指针也能下标引用)3.一维数组传参的本质和sizeof在函数中失效的原因4.指针数组4.1指针数组的概念4.2一级指针数组4.3 一级指针数组模拟实现二维数组5.数组、指针 与字符串6.数组指针(变量)6.1数组指针的概念6.2......
  • 生成式AI让你提出高智商问题,让你看起来超聪明
    你可以使用生成式AI来提出极其聪明的问题,这些问题对于各种目的和意图都非常有用。你想表现得聪明绝顶吗?我相信大多数人都想。如果你不熟悉“聪明绝顶”这个词,它在1997年的电影《心灵捕手》中流行起来,当时本·阿弗莱克的角色说他的朋友聪明绝顶,这是一种波士顿人常用的表达,表......
  • 机器学习、生成式AI和深度学习时间序列模型(含代码)
    作者:老余捞鱼原创不易,转载请标明出处及原作者。写在前面的话:    本文转自一篇论文,主要讨论了在不同行业中时间序列预测的重要性,以及如何利用机器学习、生成式人工智能(GenerativeAI)和深度学习来提高预测的准确性。时间序列数据是按特定时间间隔收集或记录的数据点......
  • 如何利用AI实现行业革命:从机器学习到生成式模型的深度解析
    引言:在过去的十年中,人工智能(AI)从学术讨论走向了实际应用,成为推动技术进步和行业变革的核心力量。无论是自动驾驶、智能客服,还是生成式模型如ChatGPT,都在重塑着行业的格局。那么,AI究竟如何为企业和个人赋能?在这篇文章中,我将带你深入了解AI的最新进展,以及它如何改变我们日常......
  • 软设每日打卡——霍夫曼编码将频繁出现的字符釆用短编码,出现频率较低的字符采用长编码
    【题目】霍夫曼编码将频繁出现的字符釆用短编码,出现频率较低的字符采用长编码。具体        的操作过程为:i)以每个字符的出现频率作为关键字构建最小优先级队列;ii)取出关键        字最小的两个结点生成子树,根节点的关键字为孩子节点关键字之和,并将根节点......
  • 企业仍愿意投资生成式AI,风险管理是首要任务
    对于那些决定迈步前行并投资于生成式人工智能(GenAI)的组织来说,这是跳进来的机会,否则可能会被竞争对手超越,尽管存在潜在的风险。根据Salesforce发布的一项研究,在新加坡,87%的高管们仍然把AI技术视为三大业务优先事项之一。该调查由YouGov于2024年7月进行,对至少拥有250名员工的组......
  • [Python手撕]两个升序数组的中位数
    classSolution:deffindMedianSortedArrays(self,nums1:List[int],nums2:List[int])->float:nums1_len=len(nums1)nums2_len=len(nums2)deffind(nums1,nums2,k):#time.sleep(1)ifnotnums1:......