首页 > 编程语言 >Python使用 - NumPy用法1

Python使用 - NumPy用法1

时间:2023-09-12 23:12:14浏览次数:50  
标签:10 数组 Python random 用法 np ndarr1 print NumPy

NumPy的核心数据结构之一是ndarray,表示一个多维数组,他存储的是单一数据类型。

 

导入包

import numpy as np

 

1维数组

list1 = [1, 2, 3, 4, 5, 6]
ndarr1 = np.array(list1, dtype=np.float32)
print(type(ndarr1), ndarr1) # <class 'numpy.ndarray'> [1. 2. 3. 4. 5. 6.]
print(ndarr1.itemsize) # 4, 元素的字节数
print(ndarr1.dtype) # float32, 元素类型
print(ndarr1.size) # 6, 元素个数
print(ndarr1.ndim) # 1, 几维数组
print(ndarr1.shape) # (6,)

 

 

2维数组

ndarr1 = np.array([[1, 2, 3], [11, 12, 13]]) # 2行3列2维数组
print(ndarr1.dtype) # int32
print(ndarr1.ndim) # 2, 几维数组
print(ndarr1.shape) # (2, 3)
print(ndarr1[1,1:3]) # [12 13], 第2行的第2和第3列

ndarr2 = ndarr1>2 # 元素变成bool类型(是否>2)
print(ndarr2.dtype) # bool
print(ndarr1[ndarr2]) # [ 3 11 12 13]

 

empty, arange, once, zero

from collections.abc import Iterable, Iterator

a = np.empty((3, 2)) # 3行2列数组, 值随机
print(type(a)) # <class 'numpy.ndarray'>
print(a)

a = np.eye(3) # 3行3列的单位矩阵
print(type(a), a) # <class 'numpy.ndarray'>
print(a)

a = np.arange(1, 10, 2) # 1维数组, 参数为start, end, step
print(type(a)) # <class 'numpy.ndarray'>
print(isinstance(a, Iterable), isinstance(a, Iterator)) # True False
print(a) # [1 3 5 7 9]

a = np.ones(3) # 1行3列数组1维数组, 值均为1
print(type(a)) # <class 'numpy.ndarray'>
print(a)

a = np.ones((3, 2)) # 3行2列2维数组, 值均为1
print(type(a)) # <class 'numpy.ndarray'>
print(a)

a = np.ones((2, 3, 2)) # 3维数组, 第1维2, 第2维3, 第3维2, 值均为1
print(type(a)) # <class 'numpy.ndarray'>
print(a)

# np.zeros用法同np.ones类似, 只是值均为0

 

linspace等差数列

logspace等比数列

a = np.linspace(0, 10, 5) # 开始为0, 结束为10, 有5个元素的等差数列
print(a) # [ 0. 2.5 5. 7.5 10. ]

a = np.linspace(0, 10, 5, endpoint=False) # 开始为0, 结束为10, 有5个元素的等差数列
print(a) # [0. 2. 4. 6. 8.]

a = np.logspace(0, 2, 3) # 开始为10^0, 结束为10^2, 有3个元素的等比数列
print(a) # [ 1. 10. 100.]

a = np.logspace(0, 2, 3, base=2) # 开始为2^0, 结束为2^2, 有3个元素的等比数列
print(a) # [1. 2. 4.]

 

平均值

a = np.array([1, 2, 3, 4])
print(np.average(a)) # 2.5, 平均值

w = np.array([1, 2, 1, 1])
print(np.average(a, weights=w)) # 2.4, 加权平均值(1*1+2*2+3*1+4*1)/(1+2+1+1)=12/5

a = np.array([[1, 2, 3], [11, 12, 13]]) # 2行3列数组
print(np.average(a, axis=0)) # [6. 7. 8.], 行的平均值
print(np.average(a, axis=1)) # [ 2. 12.], 列的平均值

 

 随机

a = np.random.randn(1, 3) # [0, 1)正态分布随机数, 1行3列2维数组
print(a) # [[0.08922697 0.335483 0.43368239]]

a = np.random.uniform(1, 3, (2, 3)) # [1, 3)均匀分布随机数(浮点数), 2行3列2维数组
print(a)

a = np.random.randint(1, 3, (2, 3)) # [1, 3)均匀分布随机数(整数), 2行3列2维数组
print(a)

rand, random内部都是调用的random_sample

a = np.random.rand(1, 3) # [0, 1)均匀分布随机数, 1行3列2维数组
print(a) # [[0.96676531 0.16221181 0.59009269]]

a = np.random.random((1, 3)) # [0, 1)均匀分布随机数, 1行3列2维数组
print(a) # [[0.09063854 0.99784202 0.42242609]]

a = np.random.random_sample((1, 3)) # [0, 1)均匀分布随机数, 1行3列2维数组
print(a) # [[0.49189229 0.23482355 0.86513068]]

 

参考

numpy库:常用基本 - smallpi - 博客园 (cnblogs.com)

Python之Numpy详细教程_python numpy_cs_程序猿的博客-CSDN博客

Python之Numpy基础 - 知乎 (zhihu.com)

Python Numpy库教程(超详细)_代码输入中...的博客-CSDN博客

 

标签:10,数组,Python,random,用法,np,ndarr1,print,NumPy
From: https://www.cnblogs.com/sailJs/p/17694929.html

相关文章

  • Working With Strings In Python.
    #字符串操作在Python中,`string`是一种不可变的数据类型,用于表示文本或字符序列,可以使用单引号或双引号将字符串括起来。<fontcolor="#C7EDCC">所有修改和生成字符串的操作的实现方法都是另一个内存片段中新生成一个字符串对象。</font>##创建字符串```pystr1="Lefti......
  • C++系列三:Qt-for-Python
    目录代码参考:代码参考:官方文档、博客参考代码参考:self.ui.pushButton.setText("demo")lable=QLabel("<fontcolor=redsize=40>HelloWorld!</font>")lable.show()SignalsandSlots:fromPySide6.QtCoreimportSlot@Slot()defsay_hello():......
  • python实现结构体排序
    python默认提供的列表sort方法,仅支持列表的元素排序。若想实现结构提排序,可参考下面方法:1、使用 lambda表达式1classstruct:2def__init__(self):3self.a=04self.b='a'56struct_list=[]7char_list=['a','b','c']8......
  • Python数据可视化:Matplotlib
    Matplotlib是Python中最受欢迎的数据可视化库之一,它提供了多种绘图函数和参数,可以创建各种类型的图形,包括线图、散点图、柱状图、饼图等等。下面是一些Matplotlib的入门知识和具体案例。安装Matplotlib在开始使用Matplotlib之前,需要先安装它。可以使用pip命令来安装:pipinstallmat......
  • 《Flask Web开发:基于Python的Web应用开发实战》高清高质量PDF电子书+源码
    网盘下载:https://pan.quark.cn/s/cc9dc7402cdb......
  • 《Python数据分析基础教程:NumPy学习指南.第2版》高清高质量PDF电子书+源码
    罕见的NumPy中文入门教程,Python数据分析首选从最基础的知识讲起,手把手带你进入大数据挖掘领域囊括大量具有启发性与实用价值的实战案例下载:https://pan.quark.cn/s/730b594117c0......
  • difflib: Python 比较数据集
    difflib 是一个专注于比较数据集(尤其是字符串)的Python模块。为了具体了解您可以使用此模块完成的几件事,让我们检查一下它的一些最常见的函数。SequenceMatcherSequenceMatcher 是一个比较两个字符串并根据它们的相似性返回数据的函数。通过使用 ratio(),我们将能够根据比率/......
  • python实现md5签名
    在Python中,hashlib.md5是一个用于计算MD5哈希值的模块。MD5是一种常用的哈希算法,它将输入数据转换为固定长度的哈希值。defget_api_sign():"""签名的计算方式:sign=md5(accountId+"zjkj@2023"+time)*2重复两次"""acco......
  • python安装后,添加完环境变量,dos窗口输入python无效
    问题背景python版本:3.8.5安装时是否勾选添加环境:是问题:dos窗口输入python提示:无任何报错提示,弹出windows应用商店解决方案问题1:弹出windows应用商店是因为默认的商店的path环境变量优先级高于我们配置的python目录,将对应的配置优先级调换即可,比如C:\Users\panie\AppDa......
  • python版elasticsearch入门笔记
    Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎。Elasticsearch的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再......