我正在使用numpy并希望索引一行而不会丢失维度信息.
import numpy as np
X = np.zeros((100,10))
X.shape # >> (100, 10)
xslice = X[10,:]
xslice.shape # >> (10,)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,xslice现在是1维,但我希望它是(1,10).在R中,我会使用X [10,:,drop = F].numpy中有类似的东西吗?我在文档中找不到它,也没有看到类似的问题.
谢谢!
假设我的数据取决于4个变量:a,b,c和d.我想插值返回一个对应于a和b的单个值的二维数组,以及一个c和d的值数组.但是,阵列大小不必相同.具体而言,我的数据来自晶体管模拟.电流取决于4个变量.我想绘制一个参数变化.参数上的点数远小于水平轴的点数.
import numpy as np
from scipy.interpolate import interpn
arr = np.random.random((4,4,4,4))
x1 = np.array([0, 1, 2, 3])
x2 = np.array([0, 10, 20, 30])
x3 = np.array([0, 10, 20, 30])
x4 = np.array([0, .1, .2, .30])
points = (x1, x2, x3, x4)
Run Code Online (Sandbox Code Playgroud)
以下作品:
xi = (0.1, 9, np.transpose(np.linspace(0, 30, 4)), np.linspace(0, 0.3, 4))
result = interpn(points, arr, xi)
Run Code Online (Sandbox Code Playgroud)
这样做:
xi = (0.1, 9, 24, np.linspace(0, 0.3, 4))
result = interpn(points, arr, xi)
Run Code Online (Sandbox Code Playgroud)
但不是这个:
xi = (0.1, 9, np.transpose(np.linspace(0, 30, 3)), …Run Code Online (Sandbox Code Playgroud)