首页 > 编程问答 >将二维数组与一维数组合并

将二维数组与一维数组合并

时间:2024-08-08 15:57:48浏览次数:10  
标签:python arrays

我目前 np.append 与两个数组组合,但它不能工作,它显示:

ValueError: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 64 and the array at index 1 has size 0

这是我的代码

weights_block_32_0 = weights_block_32[0][0:block_size]

print(weights_block_32_0)
print(weights_block_32[0][block_size * (i+1):block_size * (i+2)])

for i in range(count - 1):
    weights_block_32_0 = np.append(weights_block_32_0, weights_block_32[0][block_size * (i+1):block_size * (i+2)], 1)

输出

[[-0.11692056 -0.21988727 -0.2782506  ... -0.20971598 -0.358836
   0.365253  ]
 [-0.1029752  -0.05929758 -0.14116701 ... -0.11534233 -0.01058054
   0.10387182]
 [ 0.21475197  0.4043065   0.01345642 ...  0.04622769  0.21393798
  -0.12899256]
 ...
 [ 0.08888344 -0.04325306  0.02912059 ...  0.09227641 -0.0109155
  -0.09982339]
 [ 0.0463181   0.04997677  0.07291862 ... -0.04850281 -0.04819945
  -0.02194837]
 [-0.06676714  0.02217779  0.06599618 ... -0.06789055  0.00419611
   0.09231257]]
[]


ValueError: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 64 and the array at index 1 has size 0

此错误发生的原因是,尝试将形状不同的数组连接起来。虽然 weights_block_32_0 是一个二维数组(从打印的输出中可以看出),但切片 weights_block_32[0][block_size * (i+1):block_size * (i+2)] 在某些迭代中会产生一个空数组。这解释了错误消息“维度 0 上索引 0 处的数组大小为 64,而索引 1 处的数组大小为 0”。

以下是一些可能的解决方法:

  1. 检查的切片: 错误的主要原因是切片 weights_block_32[0][block_size * (i+1):block_size * (i+2)] 会导致一个空数组。验证的 block_size i weights_block_32 数组的形状是否与的预期相符。确保切片实际上返回了打算连接的数据。

  2. 在连接之前处理空数组: 可以添加一个条件来跳过空数组或连接一个默认值。例如: python for i in range(count - 1): temp = weights_block_32[0][block_size * (i+1):block_size * (i+2)] if temp.size != 0: weights_block_32_0 = np.append(weights_block_32_0, temp, 1)

  3. 使用列表进行动态连接: np.append 用于就地连接可能效率不高,尤其是在循环中。考虑将数组附加到列表中,然后在最后使用 np.concatenate 进行一次连接。例如:

python all_weights = [weights_block_32_0] for i in range(count - 1): temp = weights_block_32[0][block_size * (i+1):block_size * (i+2)] if temp.size != 0: all_weights.append(temp) weights_block_32_0 = np.concatenate(all_weights, axis=1)

请提供有关 weights_block_32 block_size count 变量的更多上下文或它们的实际值,以便我帮助调试特定问题。例如,了解 weights_block_32 的形状及其预期输出将非常有帮助。

标签:python,arrays
From: 78847105

相关文章

  • Python 熊猫迭代
    代码:#Importcarsdataimportpandasaspdcars=pd.read_csv('cars.csv',index_col=0)#Adaptforloopforlab,rowincars.iterrows():print(f"{[lab]}:{row['cars_per_cap']}")输出:['US']:809['A......
  • 【第九节】python中xml解析和json编解码
    目录一、PythonXML解析1.1什么是XML1.2Python对XML的解析方法1.3SAX解析xml1.4xml.dom解析xml1.6ElementTree解析XML二、Python编解码json2.1什么是json2.2使用json库2.3使用第三方库Demjson一、PythonXML解析1.1什么是XML        XML,......
  • 从 python 设置运算符符号到方法名称的映射是什么?它们与文档不匹配
    我创建了自己的Customset类,它实现了python集合的几乎所有方法。当我使用此自定义集的实例时,许多集合运算符都会失败。它们会失败,并显示类似以下内容的内容:TypeError:unsupportedoperandtype(s)for-:'Customset'andCustomset'orTypeError:'<='......
  • 21.python函数(return)
    return一、return语句1、return是指定一个返回值2、在python中创建一个函数,可以用return语句指定返回的的值,这个返回值可以是任意的类型3、return语句在同一个函数中可以出现多次,但是只有有一个得到执行,就会直接结束函数的执行。return后面的语句不执行了4、return的格式re......
  • 【Python代码】如何根据出生日期计算出年龄?
    哈喽,大家好,木易巷来啦!假设我们有一个包含出生日期的Excel文件,需要计算每个人的年龄,你会怎么做呢?具体情况如下图:今天木易巷分享通过Python及其强大的pandas库,来实现从Excel文件中读取日期数据,计算年龄,并将结果存储回Excel文件中的过程。话不多说,开干!▍1、环境准备在开......
  • python 无法解密重音字符(如 è),我该怎么办?
    我正在解决这个ctf,您必须使用PyCryptodome模块通过DES加密消息。消息是“Launghezzadiquestafrasenonèdivisibileper8”(意大利语)。我无法将此消息转换为字节,因为重音字符不包含在utf-8中(我认为这就是解释)。有人可以帮我加密消息吗?fromCrypto.Util.Paddingimp......
  • Python笔记
    Python1变量1、什么是变量变量是关联一个对象的标识符变量可以绑定一个对象,并可以通过变量名使用这个对象2、变量的命名方法:以字母或下划线开头,后面跟字母、下划线或者数字3、python中的关键字不能用作变量名4、变量无类型,对象有类型5、在交互模式下查看当前作用域内的......
  • 如何在python中使用jdbc jar文件连接informix数据库
    有什么想法如何使用jdbcjar文件连接到informix数据库吗?在python我尝试了jaydebeapi,当我执行时:conn=jaydebeapi.connect('com.informix.jdbc.IfxDriver',myurl,['user','pass'],jdbc_driver_path)...然后从表中选择数据的其余代码当我执行myscript.py它只......
  • Python爬虫实战:实时微信推送奥运奖牌榜信息
    最近奥运会正在巴黎如火如荼地进行。为了能第一时间获得我国运动健儿的获奖情况,我给大家分享一个python爬虫项目——实时微信推送奥运奖牌榜信息。爬虫每隔5分钟抓取一次奥林匹克官网奖牌榜数据,对比上次抓取的数据,如果奖牌数量或者排名有变化,就将新的获奖信息推送到......
  • 基于Python实现可视化分析中国500强排行榜数据的设计与实现
    基于Python实现可视化分析中国500强排行榜数据的设计与实现“DesignandImplementationofVisualAnalysisforChina’sTop500CompaniesRankingDatausingPython”完整下载链接:基于Python实现可视化分析中国500强排行榜数据的设计与实现文章目录基于Python......