from __future__ import print_function
import numpy as np
def tohex(val, nbits):
return hex((val + (1 <<nbits)) % (1 <<nbits))
array=np.load('C:/Tool/Python_pattern/agilev3_new/inout_pattern_layer52/in_52.npy')
#print(array.shape)
print(array.dtype)
# array[#][Row][Column][Channel] #1 52 52 384
fp = open("in_52.dat", "w")
for ch in range(384):
data=array[ch]
#print(data.dtype)
#print(data)
print(str("%08X" %(data)))
if data<0:
data=2**32+data
#fp.write(str("%08X" %(data)))
fp.write(str("%08X" %(data)))
else:
#fp.write(str("%08X" %(data)))
fp.write(str("%08X" %(data)))
fp.write("\n")
fp.close()
下面是我正在使用的代码。我试图在powershell中获取数据文件。但它总是显示错误。
我在powershell中
PS C:\Tool\Python_pattern\agilev3_new\inout_pattern_layer52> python for_bias_patterm_rowachannel_base.py
我来吧
Traceback (most recent call last):
File "for_bias_patterm_rowachannel_base.py", line 16, in <module>
print(str("%08X" %(data)))
TypeError: %X format: an integer is required, not numpy.ndarray
1条答案
按热度按时间qco9c6ql1#
您收到的错误消息表明数据变量是一个numpy数组而不是一个整数值。%X格式需要一个整数作为输入,但numpy数组不能直接格式化为整数。
要修复此错误,您可以修改代码以迭代数据数组的每个元素,并将它们分别格式化为整数。下面是应该可以工作的代码的更新版本:
这段代码应该迭代数据数组的每个元素,并使用%08X格式将它们格式化为整数。如果一个元素是负数,它将向其添加2^32以获得正确的值。