小编mkm*_*ell的帖子

检查集合中的值是否在python中的numpy数组中

我想检查NumPyArray中是否有一个集合中的值,如果是这样,则设置该数组中的区域= 1.如果没有设置keepRaster = 2.

numpyArray = #some imported array
repeatSet= ([3, 5, 6, 8])

confusedRaster = numpyArray[numpy.where(numpyArray in repeatSet)]= 1
Run Code Online (Sandbox Code Playgroud)

产量:

<type 'exceptions.TypeError'>: unhashable type: 'numpy.ndarray'
Run Code Online (Sandbox Code Playgroud)

有没有办法循环它?

 for numpyArray
      if numpyArray in repeatSet
           confusedRaster = 1
      else
           keepRaster = 2
Run Code Online (Sandbox Code Playgroud)

澄清并要求进一步帮助:

我想要得到的,现在正在做的是将光栅输入放入数组中.我需要读取二维数组中的值,并根据这些值创建另一个数组.如果数组值在一个集合中,那么该值将为1.如果它不在一个集合中,那么该值将从另一个输入派生,但我现在说77.这就是我目前正在使用的.我的测试输入有大约1500行和3500列.它总是在第350行附近冻结.

for rowd in range(0, width):
    for cold in range (0, height):
        if numpyarray.item(rowd,cold) in repeatSet:
            confusedArray[rowd][cold] = 1
        else:
            if numpyarray.item(rowd,cold) == 0:
                confusedArray[rowd][cold] = 0
            else:
                confusedArray[rowd][cold] = 2
Run Code Online (Sandbox Code Playgroud)

python numpy

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

循环通过netcdf文件并运行计算 - Python或R.

这是我第一次使用netCDF,我正试着用它来解决问题.

我有多个版本3 netcdf文件(NOAA NARR air.2m每日平均一年).每个文件跨越1979年至2012年的一年.它们是349 x 277网格,分辨率约为32千米.数据是从这里下载的.

维度是时间(自1800年1月1日以来的小时数),我感兴趣的变量是空气.我需要计算温度<0的累计天数.例如

    Day 1 = +4 degrees, accumulated days = 0
    Day 2 = -1 degrees, accumulated days = 1
    Day 3 = -2 degrees, accumulated days = 2
    Day 4 = -4 degrees, accumulated days = 3
    Day 5 = +2 degrees, accumulated days = 0
    Day 6 = -3 degrees, accumulated days = 1
Run Code Online (Sandbox Code Playgroud)

我需要将这些数据存储在一个新的netcdf文件中.我熟悉Python并且熟悉R.什么是循环每天的最佳方法,检查前一天的值,并在此基础上,将值输出到具有完全相同的维度和变量的新netcdf文件...或者可能只是使用我正在寻找的输出将另一个变量添加到原始netcdf文件中.

最好将所有文件分开或合并吗?我将它们与ncrcat结合使用它工作正常,但文件是2.3gb.

感谢您的投入.

我目前在python中取得的进展:

import numpy
import netCDF4
#Change my working DIR
f = netCDF4.Dataset('air7912.nc', 'r') …
Run Code Online (Sandbox Code Playgroud)

python r netcdf

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

在python中浏览网站,抓取并发布

stackoverflow上已有很多好的资源,但我仍然遇到问题.我访问过这些来源:

我正试图访问http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx并选择一个教区.我相信这会强制发布一个帖子,并允许我选择一年,再次发布,并允许更多选择.我按照上述来源以不同的方式编写了我的脚本,并且未能成功提交网站以允许我输入一年.

我目前的代码

import urllib
from bs4 import BeautifulSoup
import mechanize

headers = [
    ('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
    ('Origin', 'http://www.indiapost.gov.in'),
    ('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko)  Chrome/24.0.1312.57 Safari/537.17'),
    ('Content-Type', 'application/x-www-form-urlencoded'),
    ('Referer', 'http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx'),
    ('Accept-Encoding', 'gzip,deflate,sdch'),
    ('Accept-Language', 'en-US,en;q=0.8'),
]

br = mechanize.Browser()
br.addheaders = headers

url = 'http://www.latax.state.la.us/Menu_ParishTaxRolls/TaxRolls.aspx'

response = br.open(url)
# first HTTP request without form data
soup = BeautifulSoup(response)
# parse and retrieve two vital form values
viewstate = soup.findAll("input", {"type": "hidden", "name": "__VIEWSTATE"}) …
Run Code Online (Sandbox Code Playgroud)

python mechanize urllib2 web-scraping

5
推荐指数
1
解决办法
5942
查看次数

有没有更有效的方法来返回SQL中最大空间交集的记录?

我在SQL中有两个表。第一个是项目多边形。第二个是我要基于最大空间交集应用于多边形的任何边界。

例如,如果项目1重叠2个状态,我想返回项目1所在区域最多的状态名称。

我已经完成了下面的查询。PrjID是项目表,STATE是状态表。我想根据每个PrjID记录和STATE记录之间的最大交集返回statename。

SELECT *
FROM
(SELECT a.PROJECT_DELIVERY_ID, b.statename, a.Shape.STIntersection(b.Shape).STArea() AS Area
    FROM PrjID a
        INNER JOIN STATE b
            ON a.Shape.STIntersects(b.Shape) = 1) as c
INNER JOIN
(SELECT a.PROJECT_DELIVERY_ID, MAX(a.Shape.STIntersection(b.Shape).STArea()) AS Area
    FROM PrjID a
        INNER JOIN STATE b
            ON a.Shape.STIntersects(b.Shape) = 1
    GROUP BY a.PROJECT_DELIVERY_ID) as d
ON c.PROJECT_DELIVERY_ID = d.PROJECT_DELIVERY_ID
    AND c.Area = d.Area
Run Code Online (Sandbox Code Playgroud)

我感觉我在运行相同的查询两次并将它们加入。有没有更有效的方法可以做到这一点?

谢谢

sql sql-server geometry

5
推荐指数
1
解决办法
64
查看次数

神经网络训练有问题。损失不减

我主要关注这个项目,但正在做像素级分类。我有 8 个班级和 9 个乐队图像。我的图像被网格化为 9x128x128。我的损失并没有减少,训练准确性也没有太大波动。我猜我的模型有问题。非常感谢任何建议!我使用随机森林获得了至少 91% 的准确率。

我的班级非常不平衡,因此我尝试根据训练数据中的班级比例调整训练权重。

# get model
learning_rate = 0.0001
model = unet.UNetSmall(8)
optimizer = optim.Adam(model.parameters(), lr=learning_rate)

# set up weights based on data proportion
weights = np.array([0.79594768, 0.07181202, 0.02347426, 0.0042031, 0.00366211, 0.00764327, 0.07003923, 0.02321833])
weights = (1 - weights)/7
print('Weights of training data based on proportion of the training labels.  Not compted here')
print(weights)
print(sum(weights))
criterion = nn.CrossEntropyLoss(weight = weight)
lr_scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.1)
Run Code Online (Sandbox Code Playgroud)

基于训练标签比例的训练数据权重。此处未计算 [0.02915033 0.13259828 0.13950368 0.1422567 0.14233398 0.14176525 …

python machine-learning pytorch

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

数据不会永久保存到SQL表

我在Visual Studio Express 2012中使用C#作为WPF应用程序.我按照此处的教程进行操作.我创建了一个testDb.mdf基于服务的本地数据库.我打开应用程序,输入文本,点击添加,数据添加到数据库.我只知道这一点,因为我将一个字段设置为主键并且是唯一的.如果我再次尝试添加相同的东西,我会收到错误消息,说它已经存在.

当我退出应用程序时,数据库中没有任何显示.我输入的数据消失了.为什么数据不是永久性的?

这是我用于单击按钮的代码:

private void Add_Click(object sender, RoutedEventArgs e)
{
    SqlConnection cn = new SqlConnection(global::testdb.Properties.Settings.Default.testDBConnectionString);
    try 
    { 
        string sql = "INSERT INTO Test (TestInsert) Values('" + txtName.Text + "')";
        SqlCommand cmd = new SqlCommand(sql, cn);
        cn.Open();
        cmd.ExecuteNonQuery();

        MessageBox.Show("Added new record", "Message", MessageBoxButton.OK);
    }
    catch (Exception ex) 
    {
        MessageBox.Show(ex.Message,"Error", MessageBoxButton.OK);
    }
    finally
    {
        cn.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

连接字符串:

<connectionStrings>
    <add name="testdb.Properties.Settings.testDBConnectionString"
        connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\testDB.mdf;Integrated Security=True"
        providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

c# sql wpf

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