给定一个 n 维 numpy 数组。现在给出了一个轴和相应的索引。该特定轴索引中的所有元素应替换为给定值。三维数组的示例:
>>a = np.ones((2,2,2))
array([[[ 1., 1.],
[ 1., 1.]],
[[ 1., 1.],
[ 1., 1.]]])
Run Code Online (Sandbox Code Playgroud)
给定轴=1,索引=0。该轴索引中的所有元素都必须为零。
>>a
array([[[ 0., 0.],
[ 1., 1.]],
[[ 0., 0.],
[ 1., 1.]]])
Run Code Online (Sandbox Code Playgroud) 我想生成一个有序数字数组,然后将其乘以另一个数组:
[ [0,1,2,3,4,5] [0,1,2,3,4,5] [0,1,2,3,4,5] ... [0,1,2,3,4,5] ]
Run Code Online (Sandbox Code Playgroud)
我可以生成第一个 [0,1,2,3,4,5] nums = np.arange(0, 6),但是如果我乘以列表中的一个数字,它只会增加值 = [nums* 3] = [0,3,6,9,12,15]。我怎样才能做到这一点 ?
我有 3 个数组,我想沿着轴 1 连接它们。它们的数据类型是 np.float32、U32 和 np.float32。当我像这样连接时:
np.concatenate((A,B,C), axis=1)
Run Code Online (Sandbox Code Playgroud)
结果的数据类型是“U32”。我想保留 A 列和 C 列的 float32 数据类型。我该如何执行此操作?
我有 numpy.array pf shape (64 , 64 , 64) 我想将它分成 3 个变量,所以
x.shape ==> (64)
y.shape ==> (64)
z.shape ==> (64)
Run Code Online (Sandbox Code Playgroud)
由于每个暗淡代表体素坐标 (x,y,z) ,我尝试使用dsplit()但没有运气。有什么建议吗?
python voxel multidimensional-array numpy-slicing numpy-ndarray
当您调用 DataFrame.to_numpy() 时,pandas 将找到可以容纳 DataFrame 中所有数据类型的 NumPy 数据类型。但是如何进行反向操作呢?
我有一个“numpy.ndarray”对象“pred”。它看起来像这样:
[[0.00599913 0.00506044 0.00508315 ... 0.00540191 0.00542058 0.00542058]]
我正在尝试这样做:
pred = np.uint8(pred)
print("Model predict:\n", pred.T)
Run Code Online (Sandbox Code Playgroud)
但我得到:
[[0 0 0 ... 0 0 0]]
为什么,转换后,我没有得到这样的东西:
0 0 0 0 0 0 ... 0 0 0 0 0 0
以及如何将 pred 写入文件?
pred.to_csv('pred.csv', header=None, index=False)
pred = pd.read_csv('pred.csv', sep=',', header=None)
Run Code Online (Sandbox Code Playgroud)
给出错误信息:
AttributeError Traceback (most recent call last)
<ipython-input-68-b223b39b5db1> in <module>()
----> 1 pred.to_csv('pred.csv', header=None, index=False)
2 pred = pd.read_csv('pred.csv', sep=',', header=None)
AttributeError: 'numpy.ndarray' object …Run Code Online (Sandbox Code Playgroud) 我有一个 numpy 数组格式的图像,我编写了假设 rgb 图像作为输入的代码,但我发现输入由黑白图像组成。
对于什么应该是 RGB 即 (256,256,3) 维图像,我将输入作为灰度 (256,256) 数组图像,我想将其转换为 (256,256,3)
这是我在 numpy 数组中的内容:
[[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]]
(256, 256)
Run Code Online (Sandbox Code Playgroud)
这就是我想要的:(对于上面数组中的每个值,相同元素的数组 3 次)
[[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
...
[0. 0. 0.]
[0. 0. 0.] …Run Code Online (Sandbox Code Playgroud) 我有一个[10,10] numpy.ndarray. 我试图让索引成为每一行中第二大的数字。所以对于数组:
[101 0 1 0 0 0 1 1 2 0]
[ 0 116 1 0 0 0 0 0 1 0]
[ 1 4 84 2 2 0 2 4 6 1]
[ 0 2 0 84 0 6 0 2 3 0]
[ 0 0 1 0 78 0 0 2 0 11]
[ 2 0 0 1 1 77 5 0 2 0]
[ 1 2 1 0 1 2 94 0 1 …Run Code Online (Sandbox Code Playgroud) 我想对数组 (1-d) 的非零元素求和,但对正整数和负整数(它们只能是 1 和 2)分别进行汇总,并在它们所在的位置显示零。
数组示例:
array = np.array([0, 0, 0, -1, -1, 0, 1, 2, 1, 1, 0, -1, 0, 1, 1, -1, -2])
Run Code Online (Sandbox Code Playgroud)
输出:
array([0, 0, 0, -2, 0, 5, 0, -1, 0, 2, -3])
Run Code Online (Sandbox Code Playgroud)
我认为我的问题是我不知道如何将数组中的正值和负值序列分开。
在下面的脚本中,我想将旋转矩阵应用于(Nx3)数组的前两列。
rotate_mat = lambda theta: np.array([[np.cos(theta),-np.sin(theta)],[np.sin(theta),np.cos(theta)]])
rot_mat = rotate_mat(np.deg2rad(90))
basis1 = np.array([[i+1,j+1,k+1] for k in range(3) for j in range(3) for i in range(3)])
basis2 = basis1.copy()
rot = basis2[:,0:2] @ rot_mat
print('rot','\n',rot[:3],'\n')
print('basis2','\n',basis2[:3],'\n')
basis2[:,0:2] = rot
print('basis2 after','\n',basis2[:3])
Run Code Online (Sandbox Code Playgroud)
运行此脚本后,我获得了此输出
rot
[[ 1. -1.]
[ 1. -2.]
[ 1. -3.]]
basis2
[[1 1 1]
[2 1 1]
[3 1 1]]
basis2 after
[[ 1 0 1]
[ 1 -2 1]
[ 1 -3 1]]
Run Code Online (Sandbox Code Playgroud)
正如你所看到的basis2[:,0:2] = rot …
我有一个二维 numpy 数组 x 为:
[ [ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12],
[13, 14, 15],
[16, 17, 18],
[19, 20, 21],
[22, 23, 24],
[25, 26, 27],
[28, 29, 30],
[31, 32, 33],
[34, 35, 36],
[37, 38, 39],
[40, 41, 42],
[43, 44, 45],
[46, 47, 48],
[49, 50, 51],
[52, 53, 54],
[55, 56, 57],
[58, 59, 60] ]
Run Code Online (Sandbox Code Playgroud)
我想提取行中任何元素都小于 25 的行的参数。所以,我需要输出的是[0,1,2,3,4,5,6,7]仅行,但 usingnp.where(x<35)是为我提供所有可能值的 2D 参数列表。换句话说,我想要的是 …