如何从numpy数组中删除一些特定元素?说我有
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9])
Run Code Online (Sandbox Code Playgroud)
然后我想删除3,4,7的a.我所知道的是值(index=[2,3,6])的索引.
我在这个网页上有一个csv文件.我想阅读下载文件中的一些列(可以在右上角下载csv版本).
假设我想要2列:
star_namera.但是,出于某种原因,网页的作者有时会决定移动列.
最后我想要这样的东西,记住价值可能会丢失.
data = #read data in a clever way
names = data['star_name']
ras = data['ra']
Run Code Online (Sandbox Code Playgroud)
如果他们保持名称正确,这将阻止我的程序在将来再次更改列时出现故障.
到目前为止,我已经尝试了各种方式使用csv模块和怨恨pandas模块.两个都没有运气.
编辑(添加两行+我的数据文件的标题.抱歉,但它非常长.)
# name, mass, mass_error_min, mass_error_max, radius, radius_error_min, radius_error_max, orbital_period, orbital_period_err_min, orbital_period_err_max, semi_major_axis, semi_major_axis_error_min, semi_major_axis_error_max, eccentricity, eccentricity_error_min, eccentricity_error_max, angular_distance, inclination, inclination_error_min, inclination_error_max, tzero_tr, tzero_tr_error_min, tzero_tr_error_max, tzero_tr_sec, tzero_tr_sec_error_min, tzero_tr_sec_error_max, lambda_angle, lambda_angle_error_min, lambda_angle_error_max, impact_parameter, impact_parameter_error_min, impact_parameter_error_max, tzero_vr, tzero_vr_error_min, tzero_vr_error_max, K, K_error_min, K_error_max, temp_calculated, temp_measured, hot_point_lon, albedo, albedo_error_min, albedo_error_max, log_g, publication_status, discovered, …Run Code Online (Sandbox Code Playgroud) 我有一个函数实际上是对另一个程序的调用(一些Fortran代码).当我调用这个函数(run_moog)时,我可以解析4个变量,并返回6个值.这些值都应该接近0(为了最小化).但是,我把它们组合起来:np.sum(results**2).现在我有一个标量函数.我想最小化这个功能,即np.sum(results**2)尽可能接近零.
注意:当此函数(run_moog)接受4个输入参数时,它会为Fortran代码创建一个依赖于这些参数的输入文件.
我已经尝试了几种方法来从scipy docs中优化它.但没有一个按预期工作.最小化应该能够对4个变量进行限制.这是一个尝试:
from scipy.optimize import minimize # Tried others as well from the docs
x0 = 4435, 3.54, 0.13, 2.4
bounds = [(4000, 6000), (3.00, 4.50), (-0.1, 0.1), (0.0, None)]
a = minimize(fun_mmog, x0, bounds=bounds, method='L-BFGS-B') # I've tried several different methods here
print a
Run Code Online (Sandbox Code Playgroud)
然后这给了我
status: 0
success: True
nfev: 5
fun: 2.3194639999999964
x: array([ 4.43500000e+03, 3.54000000e+00, 1.00000000e-01,
2.40000000e+00])
message: 'CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL'
jac: array([ 0., 0., …Run Code Online (Sandbox Code Playgroud) 我pandas想在同一个seaborn jointplot中绘制两个数据帧.它看起来像这样(命令在IPython shell中; ipython --pylab):
import pandas as pd
import seaborn as sns
iris = sns.load_dataset('iris')
df = pd.read_csv('my_dataset.csv')
g = sns.jointplot('sepal_length', 'sepal_width', iris)
Run Code Online (Sandbox Code Playgroud)
两个数据帧中的键是相同的.
如何在同一个图中绘制我的值(当然是不同的颜色)?甚至更详细:如何绘制两个数据集,但只在顶部和侧面分配第一个?即只绘制点.
我正在尝试使用Cython优化我的代码.它正在做一个功率谱,而不是使用FFT,因为这是我们在课堂上被告知要做的事情.我曾尝试在Cython中编写代码,但没有看到任何区别.这是我的代码
#! /usr/bin/env python
# -*- coding: utf8 -*-
from __future__ import division
cimport numpy as np
import numpy as np
cimport cython
@cython.boundscheck(False)
def power_spectrum(time, data, double f_min, double f_max, double df,w=1 ):
cdef double com,f
cdef double s,c,sc,cc,ss
cdef np.ndarray[double, ndim=1] power
cdef np.ndarray[double, ndim=1] freq
alfa, beta = [],[]
m = np.mean(data)
data -= m
freq = np.arange( f_min,f_max,df )
for f in freq:
sft = np.sin(2*np.pi*f*time)
cft = np.cos(2*np.pi*f*time)
s = np.sum( w*data*sft )
c = …Run Code Online (Sandbox Code Playgroud) 我正在使用以下内容
1)VS 2010 C++ 2)Debug Win 32 3)来自这里的库
http://www.hdfgroup.org/HDF5/release/obtain5.html
基本上我下载了Windows(32位)编译器:CMake VS 2010 C,C++,IVF 12,RWDI并安装它.我试图在我的C++应用程序中包含示例代码并遇到以下问题
***HDF5 library version mismatched error***
The HDF5 header files used to compile this application do not match
the version used by the HDF5 library to which this application is linked.
Data corruption or segmentation faults may occur if the application continues.
This can happen when an application was compiled by one version of HDF5 but
linked with a different version of static or shared HDF5 library. …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,第一列是x数据(wavelenght),第二列是y数据(相对强度).
我希望将其插入到另一个x_new-data但我的问题是splrep返回值nan:
>>import numpy as np
>>from scipy.interpolate import splrep, splev
>>d = np.loadtxt("test.txt")
>>x,y = d[:,0],d[:,1]
>>
>>f = splrep( x,y,k=5 )
>>print f
>>(array([ 4501.19, 4501.19, 4501.19, ..., 7091.74, 7091.74, 7091.74]), array([ nan, nan, nan, ..., 0., 0., 0.]), 5)
Run Code Online (Sandbox Code Playgroud)
当我没有指定时也会发生这种情况k.有什么建议如何克服这个问题?
当我编程时,我经常使用外部软件来进行繁重的计算,但随后在Python中分析结果.这些外部软件通常是Fortran,C或C++,它们通过提供输入文件来工作.这可以是一个小文件,告诉哪个模式执行某些计算,或者它必须处理的大数据文件.这些文件通常使用某种格式(数据列之间有这么多空格).下面给出了我目前使用的数据文件的例如.
This is a header. The first line is always a header...
7352.103 26.0 2.61 -8.397 11.2
7353.510 26.0 4.73 -1.570 3.5
7356.643 26.0 5.75 -2.964 9.0
7356.648 26.0 5.35 -3.187 9.0
7364.034 26.0 5.67 -5.508 1.7
7382.523 26.0 5.61 -3.935 1.9
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否存在一个Python库来创建这样的输入文件,从阅读模板(由同事或外部软件的文档给出)?
通常我有一个NumPy格式的所有列,并希望使用模板作为示例将其提供给创建输入文件的函数.我不是在寻找一种蛮力方法,它可以很快变得难看.
我不知道在这里搜索什么,任何帮助表示赞赏.
我试图保存一个由浮点数和一列字符串组成的数组,我得到一些非常奇怪的结果.这是我尝试过的:
data = np.column_stack((f1, f2, f3, s1))
Run Code Online (Sandbox Code Playgroud)
第一列(f1)是长浮点数(最多10位数,但我只需要2位数).我还需要在第二和第三列2-3位,f2并f3分别.最后一列s1只包含两个不同的字符串:'FeI'和'FeII'.
问题是,当我尝试打印时,data我得到这样的东西:
[['7352' '11.7' '-4.9' 'FeI']
...,
['5340' '22.8' '-8.2' 'FeII']]
Run Code Online (Sandbox Code Playgroud)
虽然我想得到这样的东西(我不在乎它是否将浮点数保存为字符串,因为我之后可以轻松地将它们作为浮点数加载):
[['7352.91' '11.78' '-4.92' 'FeI']
...,
['53407.66' '22.82' '-8.27' 'FeII']]
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,主要的问题是它53407.66变成了5340 - 一个大小!
可能的解决方案
使用np.array替代方法并使用dtype-option.但是,我不知道如何将列存储为字符串.有帮助吗?
我的 htmx 上有多个触发器。
<input list="users_list" type="text" name="user_name" class="search-bar" placeholder="Username"
id="user_search_bar"
value=""
hx-trigger="keyup delay:500ms, change"
x-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-post="{% url 'search_user' %}"
hx-target="#users_list"
<datalist id="users_list">
<option value="elem">elem</option>
</datalist>
Run Code Online (Sandbox Code Playgroud)
如何为每个触发器声明一个目标。例如,当触发器是“keyup delay”时,目标应该是“users_list”,如果触发器是“change”,则目标应该是“endor_list”
python ×8
numpy ×3
pandas ×2
scipy ×2
arrays ×1
c++ ×1
csv ×1
cython ×1
hdf5 ×1
html ×1
htmx ×1
io ×1
javascript ×1
matplotlib ×1
minimization ×1
nan ×1
optimization ×1
seaborn ×1
spectrum ×1
types ×1