Numpy-ndarray(2)

2、numpy之ndarray切片 实例:每个子数列包含一个子数列的数组切片 import numpy as np a=np.array([[1,2,3,4,5,6],[1,2,3,4,5]]) b=a[1:4].copy() print('数组a的第1-3个元素:\n',a[0:3]) print('数组a的2-4个元素组成的新数组:\n',b) a[1:3]=8 print('将数组a的第2-3个元素替换成8:\n',a) runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Use. 阅读详情

ndarray的矩阵运算

数组是编程中的概念,矩阵、矢量是数学概念。

在计算机编程中,矩阵可以用数组形式定义,矢量可以用结构定义!

  1. 矢量运算:相同大小的数组间运算应用在元素上

示例代码(1):

# 矢量与矢量运算
arr = np.array([[1, 2, 3],
                [4, 5, 6]])

print("元素相乘:")
print(arr * arr)

print("矩阵相加:")
print(arr + arr)

运行结果:

元素相乘:
[[ 1  4  9]
 [16 25 36]]

矩阵相加:
[[ 2  4  6]
 [ 8 10 12]]
  1. 矢量和标量运算:“广播” - 将标量"广播"到各个元素

示例代码(2):

# 矢量与标量运算
print(1. / arr)
print(2. * arr)

运行结果:

[[ 1.          0.5         0.33333333]
 [ 0.25        0.2         0.16666667]]

[[  2.   4.   6.]
 [  8.  10.  12.]]

ndarray的索引与切片

  1. 一维数组的索引与切片

与Python的列表索引功能相似

示例代码(1):

# 一维数组
arr1 = np.arange(10)
print(arr1)
print(arr1[2:5])

运行结果:

[0 1 2 3 4 5 6 7 8 9]
[2 3 4]
  1. 多维数组的索引与切片:

arr[r1:r2, c1:c2]

arr[1,1] 等价 arr[1][1]

[:] 代表某个维度的数据

示例代码(2):

# 多维数组
arr2 = np.arange(12).reshape(3,4)
print(arr2)
# 第一维度下标为1的元素
print(arr2[1])
# 第一维度的下标0,1,且第二维度的下标2至最后的元素
print(arr2[0:2, 2:])
# 第二维度中下标1,2的所有元素
print(arr2[:, 1:3])

运行结果:

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

[4 5 6 7]

[[2 3]
 [6 7]]

[[ 1  2]
 [ 5  6]
 [ 9 10]]
  1. 条件索引
    布尔值多维数组:arr[condition],condition也可以是多个条件组合。

注意,多个条件组合要使用 & | 连接,而不是Python的 and or。

示例代码(3):

# 条件索引

# 找出 data_arr 中 2005年后的数据
data_arr = np.random.rand(3,3)
print(data_arr)

year_arr = np.array([[2000, 2001, 2000],
                     [2005, 2002, 2009],
                     [2001, 2003, 2010]])

is_year_after_2005 = year_arr >= 2005
print(is_year_after_2005, is_year_after_2005.dtype)
# 对应的位置为true的就返回
filtered_arr = data_arr[is_year_after_2005]
print(filtered_arr)

#filtered_arr = data_arr[year_arr >= 2005]
#print(filtered_arr)

# 多个条件
filtered_arr = data_arr[(year_arr <= 2005) & (year_arr % 2 == 0)]
print(filtered_arr)

运行结果:

[[ 0.53514038  0.93893429  0.1087513 ]
 [ 0.32076215  0.39820313  0.89765765]
 [ 0.6572177   0.71284822  0.15108756]]

[[False False False]
 [ True False  True]
 [False False  True]] bool

[ 0.32076215  0.89765765  0.15108756]

#[ 0.32076215  0.89765765  0.15108756]

[ 0.53514038  0.1087513   0.39820313]

ndarray的维数转换

二维数组直接使用转换函数:transpose()

高维数组转换要指定维度编号参数 (0, 1, 2, …),注意参数是元组

示例代码:

arr = np.random.rand(2,3)    # 2x3 数组
print(arr)    
print(arr.transpose()) # 转换为 3x2 数组


arr3d = np.random.rand(2,3,4) # 2x3x4 数组,2对应0,3对应1,4对应3
print(arr3d)
print(arr3d.transpose((1,0,2))) # 根据维度编号,转为为 3x2x4 数组

运行结果:

# 二维数组转换
# 转换前:
[[ 0.50020075  0.88897914  0.18656499]
 [ 0.32765696  0.94564495  0.16549632]]

# 转换后:
[[ 0.50020075  0.32765696]
 [ 0.88897914  0.94564495]
 [ 0.18656499  0.16549632]]


# 高维数组转换
# 转换前:
[[[ 0.91281153  0.61213743  0.16214062  0.73380458]
  [ 0.45539155  0.04232412  0.82857746  0.35097793]
  [ 0.70418988  0.78075814  0.70963972  0.63774692]]

 [[ 0.17772347  0.64875514  0.48422954  0.86919646]
  [ 0.92771033  0.51518773  0.82679073  0.18469917]
  [ 0.37260457  0.49041953  0.96221477  0.16300198]]]

# 转换后:
[[[ 0.91281153  0.61213743  0.16214062  0.73380458]
  [ 0.17772347  0.64875514  0.48422954  0.86919646]]

 [[ 0.45539155  0.04232412  0.82857746  0.35097793]
  [ 0.92771033  0.51518773  0.82679073  0.18469917]]

 [[ 0.70418988  0.78075814  0.70963972  0.63774692]
  [ 0.37260457  0.49041953  0.96221477  0.16300198]]]
成功解决ValueError: Input numpy.ndarray must be 2 dimensional ​ 成功解决ValueError: Input numpy.ndarray must be 2 dimensional 目录 解决问题 解决思路 解决方法 解决问题 ValueError: Input numpy.ndarray must be 2 dimensional 解决思路 值错误:输入numpy.ndarray 必须是2维的 背景:该问题出现即将放入模型训练的数据集X_train中 经过排查发现X_train的数据格式不对! X_train = [DenseVector([45.74 阅读详情

相关推荐

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1589

python:矩阵(ndarray)的常用运算

简介 下面简单总结python中矩阵的常用运算。 重要注释:在numpy中既可以用二维数组(numpy.ndarray)来表示矩阵,也可用numpy.matrix来表示矩阵。但我统一选择用ndarray来表示矩阵。 原因: ndarray更通用,可以表示任意N维数组; 官方文档不推荐用matrix,可能会在未来版本中移除matrix 以前用matrix的一个好处是,可以直接用a*b进行矩阵乘法,...

碧海蓝天 8203

oracle rac 成本及架构,Oracle Extended RAC 架构实战

Extended-RAC,是RAC技术的一种扩展增强。Extended-RAC是通过专用光纤(或租用裸光纤)加DWDM(波分设备)设备将两个不同楼栋/同城甚至异地机房进行相连,将数据库主机、存储分别放置于不同机房,利用存储复制/ASM Mirror等技术进行数据复制进行搭建的一种远距离集群架构。Extended RAC需要将不同楼栋/同城甚至异地机房通过专用光纤(或租用裸光纤)加DWDM(光纤复用...

weixin_33812391的博客 2453

ndarray的矩阵运算

数组是编程中的概念,矩阵、矢量是数学概念。在计算机编程中,矩阵可以用数组形式定义,矢量可以用结构定义!1. 矢量运算:相同大小的数组间运算应用在元素上# 矢量与矢量运算 arr = np.array([[1, 2, 3], [4, 5, 6]]) print("元素相乘:") print(arr * arr) print("矩阵相加:") print(arr +...

Great Expectations的博客 833

VMware17安装教程(附安装包)VMware17小白详细一键安装教程

VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。

2501_91538706的博客 2万+

滚动时域优化方法

滚动时域优化(Receding Horizon Optimization, RHO),也被广泛称为模型预测控制(Model Predictive Control, MPC),是一种用于动态系统优化和控制的。其核心思想是“在每个当前时刻k,控制器只考虑未来一个(称为“预测时域”或“优化时域”,长度N)内的系统行为。(通过测量或估计得到)。(描述状态如何随输入和干扰变化)。(如果有,可能基于历史数据或假设)。在这个有限的未来时域[k, k+N-1]上,求解一个。这个优化问题的目标是找到一个。

m0_69522810的博客 2289

Numpy数组与矩阵运算

前言: 扩展库numpy是Python支持科学计算的一个很重要的库,常用语数据分析和科学计算领域,如sklearn、pandas、scipy等,numpy提供了强大的数组运算能力以及复杂的广播机制。本篇内容将介绍数组与矩阵及其相关运算。 基于Numpy的数据分析计算生态系统有: NumPy SciPy Pandas Matplotlib Sckit-image statsmodels scikit-learn Cython PyTables Numba SymPy NumExp...

weixin_63641028的博客 2942

TSMaster如何用珠海创芯CAN卡实现高效CAN通信(附完整驱动安装指南)

本文详细介绍了如何使用TSMaster软件与珠海创芯CAN卡实现高效CAN通信,包括驱动安装、系统配置、ControlCAN.dll替换及TSMaster集成配置等关键步骤。通过实战指南和故障排除技巧,帮助工程师快速搭建稳定可靠的CAN通信测试环境,适用于汽车电子和工业控制等领域。

weixin_29201859的博客 479

Python:两个ndarray数据进行矩阵乘法

import numpy as np a = np.array([[1,2,3],[1,2,3],[1,2,3]]) # print(a) # print(a ** 2) c = np.array([1,2,3]) b = np.array([1,2,3]) # print(np.hstack(c) * np.vstack(b)) print(c.reshape(3,1) * b.reshape(1,3)) print(c * b) print(c.shape) print(b.shape) [[1.

DeniuHe的博客 2629

vue引入使用腾讯地图

// 引入鹅厂地图 initMap(lat = 0.0000000, lng = 0.0000000) { // 定义地图中心点坐标- var center = new TMap.LatLng(lat, lng) // 定义map变量,调用 TMap.Map() 构造函数创建地图 map = new TMap.Map(document.getElementById('txMapBox'), { center: center, // 设.

LiangRZ 4536

KUKA机器人修改机器人名称和IP地址的具体方法示例

KUKA机器人修改机器人名称和IP地址的具体方法示例

Robot_PLC_HMI_Automation 5258

Python numpy(ndarray 随机数组 常用操作 线性方程组和矩阵运算)

关键词:开源 数据计算扩展 功能:ndarry 多维操作 线性代数 官网:www.numpy.org 安装: pip install numpy 1、ndarray import numpy as np def main(): list = [[1,3,5],[2,4,6]] print(type(list)) n_list =

陈杰 9376

【笔记篇】Davinci Configurator OS模块(上)

主要讲解了AUTOSAR OS配置项和Vector MICROSAR OS的特性

weixin_47571898的博客 2271

NumPy 2.x 完全指南【十一】N 维数组对象(ndarray)

在之前的篇章中,有提到 ndarray 是 NumPy 中最重要的一个类,它表示 N 维数组对象,该对象是用于存放同类型元素的多维数组。接下来我们全面的了解一下 ndarray 。

记录知识、锤炼自我 1517

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

2、Numpy Ndarray 对象

1、番外说明 大家好,我是小P,本系列是本人对Python模块Numpy的一些学习记录,总结于此一方面方便其它初学者学习,另一方面害怕自己遗忘,希望大家喜欢。此外,对“目标检测/模型压缩/语义分割”感兴趣的小伙伴,欢迎加入QQ群 813221712 讨论交流,进群请看群公告!(可以点击如下连接直接加入!) 点击链接加入群聊【Object Detection】:https://jq.qq.com...

phinoo的博客 1580

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

2. Numpy中的ndarray

《玩转Numpy计算库》视频课程 《玩转Numpy计算库》视频课程链接:https://edu.youkuaiyun.com/course/detail/28656 ndarray 数组对象 (Array objects) ndarray引入的原因 Python已有列表类型,为什么需要一个数组对象(类型)? 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据 设置专门的数组对象,经过优化,可以提升这类应用的运算速度 数组对象采用相同的数据类型,有助于节省运算和存储空间 NumPy提供了N维数组

bai666ai的博客 905

Numpy基础入门(2) ndarray介绍

本节介绍了Numpy最核心的ndarray以及特性和属性

qq_53845451的博客 1万+

numpy.c_[ndarray1, ndarray2]和numpy.r_[ndarray1, ndarray2]

引入numpy数据函数库 import numpy as np 生成ndarray数组 a = np.array([[1, 2],[5, 6], [9, 10]]) 即a为: [[1, 2], [5, 6], [9, 10]] b = np.ones((2, 2)) 即b为: [[1, 1], [1, 1]] c = np.ones((3, 1)) 即c为: [[1], [1], [1]] 1、numpy.c_[ndarray1, ndarray2] np.c_[a, b] 输出:

刘先生倒了u的博客 362

[numpy] ndarray数组2

ndarray的属性 # 维度 arr.ndim # 形状 arr.shape # 元素类型 arr.dtype # 元素数量 arr.size # 元素所占的字节 arr.itemsize 兼容处理 str > float > int 类型转换 # 元素级别转换 arr = np.array([1.1, 2.2, 3.3]) arr = arr.astype(np.int32) # 变量级别 >>> [1, 2] ..

cheeshine123的博客 272

2、NumPy ndarray:多维数组对象基础

NumPy 的ndarray是一个多维数组对象,它支持快速的、向量化的数组操作。与 Python 原生的列表相比,ndarray提供了更加丰富的操作和更高效的存储。核心特性同质性ndarray中的所有元素必须是相同数据类型。多维性:可以是任意维度的数据结构,如向量(1维)、矩阵(2维)或更高维数据。高效性:NumPy 在内存中使用连续块存储数据,优化了缓存的使用,提高了计算性能。

sinat_34461199的博客 970

2.1 掌握NumPy数组对象ndarray

ndarrary:NumPy库的心脏ndarray:多维数组,具有矢量运算能力,且快速、节省空间可对整组数据进行快速运算的标准数学函数、线性代数、随机数生成等功能NumPy提供了两种基本的对象:ndarray和ufunc。narray是存储但艺术组类型的多维数组。ufunc是能够对数组进行处理的函数。

我走的每一步都算数 1051

2-02-2 NumPy 创建 ndarray 对象

NumPy 创建 ndarray numpy.array() 方法用来创建一个指定对象的 ndarray 数组。 语法与参数 numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0) 名称 描述 object 数组或嵌套的数列 dtype 数组元素的数据类型,可选 copy 对象是否需要复制,可选 order 有 “C” 和 “F” 两个选项,分别代表,行优先和

m0_50614038的博客 615

NumPy学习笔记——(2)ndarray的基本概念

上一小节: NumPy学习笔记——(1)NumPy的基本概念及优势 目录1、ndarray的属性2、ndarray的形状3、ndarray的类型4、总结 1、ndarray的属性 数组属性反映了数组本身固有的信息。下面表格展示了ndarray数组的基本属性。 属性名字 属性解释 ndarray.shape 数组维度的元组 ndarray.ndim 数组维数 ndarray.size 数组中的元素数量 ndarray.itemsize 一个数组元素的长度(字节) nda.

Ma Sizhou 456

NumPy基础(2. ndarray操作)

Numpy User Guide 1.17.0 orc,本人真·人工翻译,介绍了NumPy核心ndarray的API

切克闹的博客 439

python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

Python数据分析之Numpy学习 2 —— NumPy 基础学习NumPy(Numerical Python)是高性能科学计算和数据分析的基础包。NumPy的主要对象是同构数据多维容器(homogeneous multidimensional array)——ndarray,也就是说每一个ndarray都是一个相同类型元素组成的表格(二维)。在NumPy中维度(dimensions)叫做轴(a...

weixin_39752941的博客 378

Numpy学习2-创建ndarray数组

本文介绍了NumPy创建数组的多种方法:1) 从Python列表直接转换,支持自动类型推断;2) 使用zeros/ones/empty创建占位数组;3) 使用arange生成数字序列;4) zeros_like等创建同形数组;5) linspace生成等差数列;6) 使用random模块创建随机数数组;7) normal函数生成正态分布随机数;8) 其他方法如fromfunction和fromfile。每种方法都提供了示例代码,展示了如何控制数组形状、数据类型等参数,适用于科学计算和数据分析中的不同场景。

木梓油 463
上一篇: Numpy-ndarray(1)
下一篇: Numpy-ndarray(3)
穷图陌�
博客等级 码龄8年 1粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值