小编Yas*_*min的帖子

在R中7个条形的条形图中的纹理?

我在X中每个值有7个不同的类别.我使用条形图来绘制这些类别.这样的图形在彩色打印机中看起来很好,但如果我希望它在黑白中很好的话.您可以查看下面的图表.我想要有不同的颜色纹理,所以图形看起来很好的颜色和黑白打印机.

在此输入图像描述

我在barplot函数中使用密度= c(10,30,40,50,100,60,80)作为密度参数.在barplot中还有其他方法可以做不同的纹理吗?

注意:我在barplot中尝试了角度值.然而,在这种情况下,它不是一个好的解决方案,因为并非所有的条都具有高值(即条的高度).

plot visualization r

13
推荐指数
1
解决办法
2万
查看次数

如何估算密度函数并计算其峰值?

我已经开始使用python进行分析.我想做以下事情:

  1. 获取数据集的分布
  2. 获得此分布中的峰值

我使用scipy.stats中的gaussian_kde来估算核密度函数.guassian_kde是否对数据做出任何假设?我正在使用随时间变化的数据.因此,如果数据具有一个分布(例如高斯分布),则稍后可能会有另一个分布.gaussian_kde在这种情况下有任何缺点吗?有人建议在问题要尽量合身,以获得数据分布在每个分布的数据.那么,什么是使用gaussian_kde并提供了答案之间的差异问题.我使用下面的代码,我还想知道如果数据会随着时间的推移而改变,那么gaussian_kde是估算pdf的好方法吗?我知道gaussian_kde的一个优点是它可以通过经验法则自动计算带宽,如此处所示.另外,我怎样才能达到顶峰?

import pandas as pd
import numpy as np
import pylab as pl
import scipy.stats
df = pd.read_csv('D:\dataset.csv')
pdf = scipy.stats.kde.gaussian_kde(df)
x = np.linspace((df.min()-1),(df.max()+1), len(df)) 
y = pdf(x)                          

pl.plot(x, y, color = 'r') 
pl.hist(data_column, normed= True)
pl.show(block=True)       
Run Code Online (Sandbox Code Playgroud)

python numpy python-2.7 pandas

7
推荐指数
1
解决办法
9493
查看次数

如何将经度、纬度、高程转换为笛卡尔坐标?

我下载了天气数据,它有经度(十进制)、纬度(十进制)和海拔(米)值。没有有关所使用的坐标系的信息。我如何将其转换为笛卡尔坐标?我的尝试如下。但是,我的问题是找到正确的公式

def cartesian(self,longitude,latitude, elevation):
    R = 6378137.0 + elevation  # relative to centre of the earth
    X = R * math.cos(longitude) * math.sin(latitude)
    Y = R * math.sin(longitude) * math.sin(latitude)
    Z = R * math.cos(latitude)

def cartesian3(self,longitude,latitude, elevation):

    X = longitude * 60 * 1852 * math.cos(latitude)
    Y = latitude * 60 * 1852

    Z = elevation

    return X,Y,Z
Run Code Online (Sandbox Code Playgroud)

Daphna Shezaf的回答使用了不同的公式。但是,它不使用高程。如果有人能消除我的困惑,我将不胜感激,是否应该使用海拔来从长/纬度转换?正确的公式是什么?我尝试使用特定的经度、纬度、海拔来比较我在该网站上的代码的结果。我上面的两种方法的结果与从网站获得的结果相差甚远

更新

我想分享我的问题的解决方案。我已经在Python中实现了Matlab中的lla2ecef函数。它允许将弧度经度、纬度和海拔(高度以米为单位)转换为笛卡尔坐标。我只需要将纬度和经度转换为弧度,前提是它们是十进制的:

latitude = (lat * math.pi) / 180  #latitude in radian, and lat …
Run Code Online (Sandbox Code Playgroud)

python coordinate-systems python-2.7 cartesian-coordinates

6
推荐指数
1
解决办法
2万
查看次数

如何用 pandas DataFrame 中之前和后续值的平均值替换 NaN?

如果我有一些缺失值,并且我想用之前和之后值的平均值替换所有 NaN,我该怎么做?

我知道我可以使用pandas.DataFrame.fillnawithmethod='ffill'method='bfill'选项来用前面或后面的值替换 NaN 值,但是我想在数据帧上应用这些值的平均值,而不是迭代行和列。

python python-3.x pandas

3
推荐指数
1
解决办法
1233
查看次数

Tree 包中的预测函数

我在 R 中有分类树,我尝试通过以下方式进行交叉验证:

cv.tree1<-cv.tree(tree1)
Run Code Online (Sandbox Code Playgroud)

然后我试过了

tree3 = prune.tree(tree1, best=15)
Run Code Online (Sandbox Code Playgroud)

然后我试图从当前树中预测我的所有标签:

predict(tree3, data.train[1,])
Run Code Online (Sandbox Code Playgroud)

输出是:

            0         1          2          3           4           5           6          7          8
1 0.0006247397 0.8531862 0.03706789 0.02207414 0.003123698 0.008746356 0.009371095 0.00728863 0.05310287
            9
1 0.005414411
Run Code Online (Sandbox Code Playgroud)

据我了解,它给了我每个标签的概率,因为我在这里有 10 个标签 0:9 所以我试图获得最后一条语句的最大值来预测所有标签

predict.list <-matrix(0,nrow=nrow(data.train),ncol=10)
for (index in c(1:nrow(digits.train)))
{
  predict.list[index]<-predict(tree3, data.train[index,])
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试获取 predict.list 中每一行的最大值,但实际上这不起作用所以我尝试查看 str(predict(tree3, data.train[index,])) 的结构我发现它是

   num [1, 1:10] 0.00656 0.00583 0.00947 0.07479 0.14813 ...
  - attr(*, "dimnames")=List of 2
  ..$ : chr "8184"
  ..$ : chr [1:10] "0" "1" …
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
7097
查看次数

我可以在Python中获得核密度估计的一阶导数吗?

我有一个二维数组的数据,我用来gaussian_kde估计数据分布。现在,我想获得所得密度估计器的一阶导数以获得零交叉。是否可以从估计密度中得到它?如果是这样,Python 中是否有任何内置函数可以提供帮助?

python scipy python-2.7

2
推荐指数
1
解决办法
2127
查看次数

如何在数字数组中填充NaN值以应用SVD?

我将两个数据帧合并在一起,这些数据帧具有一些公共列,但是有一些不同的列。我想对合并的数据帧应用奇异值分解(SVD)。但是,填充NaN值会影响结果,在我的情况下,即使用零填充数据也将是错误的,因为有些列的值为零。这是一个例子。有什么办法解决这个问题?

>>> df1 = pd.DataFrame(np.random.rand(6, 4), columns=['A', 'B', 'C', 'D'])
>>> df1
          A         B         C         D
0  0.763144  0.752176  0.601228  0.290276
1  0.632144  0.202513  0.111766  0.317838
2  0.494587  0.318276  0.951354  0.051253
3  0.184826  0.429469  0.280297  0.014895
4  0.236955  0.560095  0.357246  0.302688
5  0.729145  0.293810  0.525223  0.744513
>>> df2 = pd.DataFrame(np.random.rand(6, 4), columns=['A', 'B', 'C', 'E'])
>>> df2
          A         B         C         E
0  0.969758  0.650887  0.821926  0.884600
1  0.657851  0.158992  0.731678  0.841507
2  0.923716  0.524547  0.783581  0.268123
3  0.935014  0.219135  0.152794 …
Run Code Online (Sandbox Code Playgroud)

python numpy svd python-3.x

0
推荐指数
1
解决办法
3139
查看次数