Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NumPy 基础

NumPy 基础

原创
作者头像
bowenerchen
修改于 2025-03-31 11:06:06
修改于 2025-03-31 11:06:06
110014
代码可运行
举报
文章被收录于专栏:数理视界数理视界
运行总次数:14
代码可运行

NumPy 中常见的基础操作

NumPy常见基础操作
NumPy常见基础操作
numpy 思维导图
numpy 思维导图

代码示例

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

# A NumPy array can be specified to be stored in row-major format, using the keyword
# argument order= 'C', and column-major format, using the keyword argument
# order= 'F', when the array is created or reshaped. The default format is row-major.
data = np.array([[0, 1], [1, 2], [2, 3], [3, 4]])
print('数组的维度数:', data.ndim)
print('数组中元素的总个数:', data.size)
print('数组中元素的数据类型:', data.dtype)
print('整个数组在内存中所占的字节数:', data.nbytes)
print('数组中每个元素在内存中所占的字节数:', data.itemsize)
print('获取数组的形状(各维度上元素的个数情况):', data.shape)
print('转换为 Python 内置的列表类型:', data.tolist())
# print('Numpy支持的所有数据类型:', np.sctypeDict)

data_0 = data[0]
print('数组的维度数data_0:', data_0.ndim)
print('数组中元素的总个数data_0:', data_0.size)
print('数组中元素的数据类型data_0:', data_0.dtype)
print('整个数组在内存中所占的字节数data_0:', data_0.nbytes)
print('数组中每个元素在内存中所占的字节数data_0:', data_0.itemsize)
print('获取数组的形状(各维度上元素的个数情况)data_0:', data_0.shape)
print('转换为 Python 内置的列表类型data_0:', data_0.tolist())

data_0_0 = data[0][0]
print('数组的维度数data_0_0:', data_0_0.ndim)
print('数组中元素的总个数data_0_0:', data_0_0.size)
print('数组中元素的数据类型data_0_0:', data_0_0.dtype)
print('整个数组在内存中所占的字节数data_0_0:', data_0_0.nbytes)
print('数组中每个元素在内存中所占的字节数data_0_0:', data_0_0.itemsize)
print('获取数组的形状(各维度上元素的个数情况)data_0_0:', data_0_0.shape)
print('转换为 Python 内置的列表类型data_0_0:', data_0_0.tolist())

# Once a NumPy array is created, its dtype cannot be changed, other than by creating
# a new copy with type-casted array values.
data = np.array([[0, 1], [1, 2], [2, 3], [3, 4]])
print('数组中元素的数据类型 data:', data.dtype)
print('整个数组在内存中所占的字节数 data:', data.nbytes)
print('转换为 Python 内置的列表类型 data:', data.tolist())

data2 = np.array(data, dtype = np.float64)
print('数组中元素的数据类型 data2:', data2.dtype)
print('整个数组在内存中所占的字节数 data2:', data2.nbytes)
print('转换为 Python 内置的列表类型 data2:', data2.tolist())

data3 = np.array(data, dtype = np.complex64)
print('数组中元素的数据类型 data3:', data3.dtype)
print('整个数组在内存中所占的字节数 data3:', data3.nbytes)
print('转换为 Python 内置的列表类型 data3:', data3.tolist())

data4 = data.astype(np.float32)
print('数组中元素的数据类型 data4:', data4.dtype)
print('整个数组在内存中所占的字节数 data4:', data4.nbytes)
print('转换为 Python 内置的列表类型 data4:', data4.tolist())

data5 = np.sqrt(data)  # data 是 int,但是 data5 默认是 float64 类型
print('数组中元素的数据类型 data5:', data5.dtype)
print('整个数组在内存中所占的字节数 data5:', data5.nbytes)
print('对 data 开平方后得到的数据:', data5.tolist())

# Only when the data type of the array is complex is the square root of –1 resulting in the imaginary unit
# (denoted as 1j in Python).
data6 = np.sqrt([-1 + 1j, -2 - 2j, -3 * 3j], dtype = np.complex128)
print('数组中元素的数据类型 data6:', data6.dtype)
print('整个数组在内存中所占的字节数 data6:', data6.nbytes)
print('对 data6 开平方后得到的数据:', data6.tolist())

# RuntimeWarning: invalid value encountered in sqrt
# data7 = np.sqrt([-1])

# # ValueError: setting an array element with a sequence.
# # The requested array has an inhomogeneous shape after 1 dimensions.
# # The detected shape was (5,) + inhomogeneous part.
# ragged_array = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11], [12, 13], [14]])
# print('数组的维度数ragged_array:', ragged_array.ndim)
# print('数组中元素的总个数ragged_array:', ragged_array.size)
# print('数组中元素的数据类型ragged_array:', ragged_array.dtype)
# print('整个数组在内存中所占的字节数ragged_array:', ragged_array.nbytes)
# print('数组中每个元素在内存中所占的字节数ragged_array:', ragged_array.itemsize)
# print('获取数组的形状(各维度上元素的个数情况)ragged_array:', ragged_array.shape)
# print('转换为 Python 内置的列表类型ragged_array:', ragged_array.tolist())

#  have a ragged array created using NumPy with different-length sublists
# The dtype=object parameter is crucial here.
# When creating a ragged array (where subarrays have different lengths),
# NumPy needs to store it as an array of Python objects rather than a regular rectangular numeric array.
# Without dtype=object, NumPy would try to create a rectangular array and either:
# Pad shorter rows with zeros or NaN values
# Raise an error because the sublists have different lengths
ragged_array_2 = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11], [12, 13], [14]], dtype = object)
print('数组的维度数ragged_array_2:', ragged_array_2.ndim)
print('数组中元素的总个数ragged_array_2:', ragged_array_2.size)
print('数组中元素的数据类型ragged_array_2:', ragged_array_2.dtype)
print('整个数组在内存中所占的字节数ragged_array_2:', ragged_array_2.nbytes)
print('数组中每个元素在内存中所占的字节数ragged_array_2:', ragged_array_2.itemsize)
print('获取数组的形状(各维度上元素的个数情况)ragged_array_2:', ragged_array_2.shape)
print('转换为 Python 内置的列表类型ragged_array_2:', ragged_array_2.tolist())

special_limit_value = {
    'np.inf': np.inf,
    'np.e': np.e,
    'np.pi': np.pi
}
print(special_limit_value)

zeros_data = np.zeros(shape = (3, 4), dtype = int)
print('zeros_data:', zeros_data.tolist())

ones_data = np.ones(shape = (3, 4), dtype = int)
print('ones_data:', ones_data.tolist())

multi_ones_data = 1.1 * np.ones(shape = (3, 4), dtype = float)
print('multi_ones_data:', multi_ones_data.tolist())

another_multi_ones_data = np.full(shape = (3, 4), fill_value = 10, dtype = int)
print('another_multi_ones_data:', another_multi_ones_data.tolist())

# To construct a matrix with an arbitrary one-dimensional array on the diagonal, we
# can use the np.diag function (which also takes the optional keyword argument k to
# specify an offset from the diagonal)
diag_data = np.diag([1, 2, 3])
print('diag_data:', diag_data.tolist())

range_data = np.arange(1, 20, 3)
print('range_data:', range_data.tolist())

lin_space_data = np.linspace(1, 20, 7)
print('lin_space_data:', lin_space_data.tolist())

# This creates 7 numbers between 10¹ and 10²⁰, where:
# The first parameter (1) is the start exponent
# The second parameter (20) is the end exponent
# The third parameter (7) is the number of points to generate
# By default, it uses base 10
# so the numbers are spaced evenly in powers of 10
log_space_data = np.logspace(1, 20, 7, base = 10)
print('log_space_data:', log_space_data.tolist())

# To create an array of specific size and data type, but without initializing the elements in
# the array to any particular values, we can use the function np.empty
# If all elements are guaranteed to be initialized later in the code, this can save a little bit of time,
# especially when working with large arrays.
uninitialized_data = np.empty(shape = (10, 10), dtype = np.int8)
print('uninitialized_data:', uninitialized_data.tolist())

# It is often necessary to create new arrays that share properties, such as shape and data
# type, with another array. NumPy provides a family of functions for this purpose: np.
# ones_like, np.zeros_like, np.full_like, and np.empty_like.
ones_like_data = np.ones_like(uninitialized_data)
print('ones_like_data:', ones_like_data.tolist())

zeros_like_data = np.zeros_like(uninitialized_data)
print('zeros_like_data:', zeros_like_data.tolist())

full_like_data = np.full_like(uninitialized_data, 1)
print('zeros_like_data:', full_like_data.tolist())

empty_like_data = np.empty_like(uninitialized_data)
print('empty_like_data:', empty_like_data.tolist())

# the function np.identity generates a square matrix with ones on the diagonal
# and zeros elsewhere
diagonal_data = np.identity(n = 5, dtype = int)
print('diagonal_data:', diagonal_data.tolist())


eye_data = np.eye(N = 5, k = 1)
print('eye_data:', eye_data.tolist())
eye_data = np.eye(N = 5, k = -1)
print('eye_data:', eye_data.tolist())

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python Numpy基础:数组的创建与基本属性
在科学计算和数据分析领域,Python的Numpy库是一个不可或缺的工具。它提供了强大的多维数组对象,以及丰富的函数库,能够高效地处理大规模数据。本篇文章将详细介绍Numpy数组的创建方式与基本属性,帮助你更好地掌握这一基础知识,为深入学习和应用Numpy打下坚实的基础。
sergiojune
2024/08/14
2870
Python Numpy基础:数组的创建与基本属性
技术图文:NumPy 的简单入门教程
这段时间,LSGO软件技术团队正在组织 “机器学习实战刻意练习”活动,这个活动是“Python基础刻意练习”活动的升级,是对学员们技术的更深层次的打磨。在用 Python 写各类机器学习算法时,我们经常会用到 NumPy库,故在这里总结一下,以方便学员们的学习。
Datawhale
2019/11/12
1.1K0
技术图文:NumPy 的简单入门教程
手撕numpy(二):各种特性和简单操作
记住一句话:numpy中的数据类型转换,不要使用x.dtype修改元素的数据类型,最好用x.astype()这种方式。
朱小五
2020/03/18
4990
手撕numpy(二):各种特性和简单操作
python 中numpy基本方法总结可以类推tensorflow
一、数组方法 创建数组:arange()创建一维数组;array()创建一维或多维数组,其参数是类似于数组的对象,如列表等 反过来转换则可以使用numpy.ndarray.tolist()函数,如a.tolist() 创建数组:np.zeros((2,3)),或者np.ones((2,3)),参数是一个元组分别表示行数和列数 对应元素相乘,a * b,得到一个新的矩阵,形状要一致;但是允许a是向量而b是矩阵,a的列数必须等于b的列数,a与每个行向量对应元素相乘得到行向量。 + - / 与 * 的运
学到老
2018/03/16
2.1K0
Numpy入门2
标题中的英文首字母大写比较规范,但在python实际使用中均为小写。 2018年7月26日笔记
潇洒坤
2018/09/10
7140
Numpy入门2
NumPy 1.26 中文文档(五)
此参考手册详细介绍了 NumPy 中包含的函数、模块和对象,描述了它们的作用和功能。要了解如何使用 NumPy,请参阅完整文档。
ApacheCN_飞龙
2024/06/28
2290
NumPy 1.26 中文文档(五)
Python库介绍6 数组的属性
numpy中,数组(ndarray)具有许多属性,这些属性提供了关于数组形状、数据类型、大小等的有用信息。以下是一些常用的NumPy数组属性:
用户11104668
2024/05/09
1650
Numpy 修炼之道 (2)—— N维数组 ndarray
ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。
abs_zero
2018/04/11
7520
Numpy 修炼之道 (2)—— N维数组 ndarray
【机器学习】 搭建模型第一步:你需要预习的NumPy基础都在这了
NumPy 主要的运算对象为同质的多维数组,即由同一类型元素(一般是数字)组成的表格,且所有元素通过正整数元组进行索引。在 NumPy 中,维度 (dimension) 也被称之为轴线(axes)。
竹清
2018/08/31
2.2K0
numpy之数组基础
展平 ravel 只显示变为一维数组的视图 flatten将多维数组变成一维数组后保存结果
用户7886150
2020/12/25
2.4K0
python的NumPy使用
Numpy 的主要用途是以数组的形式进行数据操作。 机器学习中大多数操作都是数学操作,而 Numpy 使这些操作变得简单!所以专门学习记录一下numpy是十分有必要的!
用户7886150
2021/01/03
1.9K0
Python—numpy模块下函数介绍(一)numpy.ones、empty等
NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量。比如说,二维数组相当于是一个一维数组,而这个一维数组中每个元素又是一个一维数组。所以这个一维数组就是NumPy中的轴(axes),而轴的数量——秩,就是数组的维数。 首先来看看以np.ones为例的英文参数介绍 numpy.ones(shape, dtype=None, order=’C’) Return a new array of gi
学到老
2018/03/16
2K0
Python—numpy模块下函数介绍(一)numpy.ones、empty等
【数据分析 | Numpy】Numpy模块系列指南(一),从设计架构说起
🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)
计算机魔术师
2023/11/30
2140
[机器学习实战札记] NumPy基础
<<机器学习实战>>一书非常注重实践,对每个算法的实现和使用示例都提供了python实现。在阅读代码的过程中,发现对NumPy有一定的了解有助于理解代码。特别是NumPy中的数组和矩阵,对于初次使用者而言,有点难以理解。下面就总结一下NumPy基础知识。
云水木石
2019/07/02
5560
昇思25天学习打卡营第二天|张量
张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 𝑛𝑛 维空间内,有  𝑛𝑟𝑛𝑟 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。𝑟𝑟 称为该张量的秩或阶(与矩阵的秩和阶均无关系)。
@小森
2024/06/28
1040
昇思25天学习打卡营第二天|张量
搭建模型第一步:你需要预习的NumPy基础都在这了
NumPy 主要的运算对象为同质的多维数组,即由同一类型元素(一般是数字)组成的表格,且所有元素通过正整数元组进行索引。在 NumPy 中,维度 (dimension) 也被称之为轴线(axes)。
机器之心
2018/07/26
2.3K0
【科学计算包NumPy】NumPy数组的创建
  NumPy 是在1995年诞生的 Python 库 Numeric 的基础上建立起来的,但真正促使 NumPy 的发行的是 Python 的 SciPy 库。但 SciPy 中并没有合适的类似于 Numeric 中的对于基础数据对象处理的功能。于是, SciPy 的开发者将 SciPy 中的一部分和 Numeric 的设计思想结合,在 2005 年发行了 NumPy。
Francek Chen
2025/01/22
2550
Python中的Numpy入门教程
很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。如果接触过matlab、scilab,那么numpy很好入手。 在以下的代码示例中,总是先导入了numpy:
hankleo
2020/09/16
3610
说声谢谢!给你需要的NumPy知识
Python虽然是一门比较好入门的语言,相较于其他语言来说是一门比较简单的语言。不过有一个很重要的问题就是,即使Python 语言的很多方法不用手打都已经被封装,可以Python初学者还是要学习很多东西。下面我结合了一些经常用到的NumPy基础知识送给大家。
小小科
2020/07/20
7790
Python可视化数据分析04、NumPy库使用
在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量。
红目香薰
2022/11/30
1.5K0
Python可视化数据分析04、NumPy库使用
相关推荐
Python Numpy基础:数组的创建与基本属性
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验