我有一个使用创建的数组
array1 = np.array([[25, 160, 154, 233],
[61, 244, 198, 248],
[227, 226, 141, 72 ],
[190, 43, 42, 8]],np.int) ;
Run Code Online (Sandbox Code Playgroud)
显示为
[[25, 160, 154, 233]
[61, 244, 198, 248]
[227, 226, 141, 72]
[190, 43, 42 , 8]]
Run Code Online (Sandbox Code Playgroud)
如何将此数组显示为十六进制数字,如下所示:
[[0x04, 0xe0, 0x48, 0x28]
[0x66, 0xcb, 0xf8, 0x06]
[0x81, 0x19, 0xd3, 0x26]
[0xe5, 0x9a, 0x7a, 0x4c]]
Run Code Online (Sandbox Code Playgroud)
注意:十六进制中的数字可能不是int中数字的真实转换.我已经填充十六进制数组只是为了举例说明我需要的东西.
我有两个相同大小的2D阵列
a = array([[1,2],[3,4],[5,6]])
b = array([[1,2],[3,4],[7,8]])
Run Code Online (Sandbox Code Playgroud)
我想知道a中的b行.
所以输出应该是:
array([ True, True, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
不做:
array([any(i == a) for i in b])
Run Code Online (Sandbox Code Playgroud)
因为a和b很大.
有一个函数可以执行此操作但仅适用于1D数组:in1d
我有两个numpy数组:
p_a_colors=np.array([[0,0,0],
[0,2,0],
[119,103,82],
[122,122,122],
[122,122,122],
[3,2,4]])
p_rem = np.array([[119,103,82],
[122,122,122]])
Run Code Online (Sandbox Code Playgroud)
我想删除p_rem中p_a_colors中的所有列,所以我得到:
p_r_colors=np.array([[0,0,0],
[0,2,0],
[3,2,4]])
Run Code Online (Sandbox Code Playgroud)
我认为,有些东西应该像
p_r_colors= np.delete(p_a_colors, np.where(np.all(p_a_colors==p_rem, axis=0)),0)
Run Code Online (Sandbox Code Playgroud)
但我只是没有得到轴或[:]正确.
我知道
p_r_colors=copy.deepcopy(p_a_colors)
for i in range(len(p_rem)):
p_r_colors= np.delete(p_r_colors, np.where(np.all(p_r_colors==p_rem[i], axis=-1)),0)
Run Code Online (Sandbox Code Playgroud)
会工作,但我试图避免(python)循环,因为我也希望性能正确.