假设我有一个矩阵,A其第一列包含重复项目ID,第二列包含重量.
A= [1 40
3 33
2 12
4 22
2 10
3 6
1 15
6 29
4 10
1 2
5 18
5 11
2 8
6 25
1 14
2 11
4 28
3 38
5 35
3 9];
Run Code Online (Sandbox Code Playgroud)
我现在想要找出每个实例A及其相关最小权重的差异.为此,我创建了一个矩阵B,其第一列包含第1列中的唯一ID,第2列包含从A第2列中找到的相关最小权重A.
B=[1 2
2 8
3 6
4 10
5 11
6 25];
Run Code Online (Sandbox Code Playgroud)
然后,我想在第3列中存储A每个条目的差异及其相关的最小权重.
A= [1 40 38
3 33 27
2 12 4
4 22 …Run Code Online (Sandbox Code Playgroud) 假设我有一个矩阵,A其第一列包含一些项ID,第二列包含0或1.
A=[3 1
1 0
4 0
3 0
1 1
2 1
3 1
4 0
2 0
4 1
3 1
4 0
2 1
1 1
2 0];
Run Code Online (Sandbox Code Playgroud)
我想找到哪个项目ID拥有最多1的,并从A提取其条目,一个接一个.所以,我做的事情是这样的,我做一个矩阵B提取所有从A 1项,找到最频繁出现项目ID,freq_item{1}在B,然后从提取所有条目A该ID的.然后,删除最频繁项目的所有实例,并搜索下一个最常用的项目.如果两个或多个项目具有相同数量的1,选择具有1的的更大的比例:
B = A(A(:,2)==1,:);
for i=1:size(unique(A(:,1)),1)
freq_item{i} = A(A(:,1)==mode(B(:,1)),:);
B = B(B(:,1)~=mode(B(:,1)),:);
end
Run Code Online (Sandbox Code Playgroud)
所以,输出是:
freq_item{1,1}=[3 1
3 0
3 1
3 1]
freq_item{1,2}=[1 0
1 1
1 1]
freq_item{1,3}=[2 1
2 0
2 1
2 0]
freq_item{1,4}=[4 0 …Run Code Online (Sandbox Code Playgroud) 假设我有一个数据帧,df:
>>> df
Age Score
19 1
20 2
24 3
19 2
24 3
24 1
24 3
20 1
19 1
20 3
22 2
22 1
Run Code Online (Sandbox Code Playgroud)
我想构建一个新的数据框,用于Age存储和存储它们的平均分数Score:
Age Score
19-21 1.6667
22-24 2.1667
Run Code Online (Sandbox Code Playgroud)
这是我的做法,我觉得这有点令人费解:
import numpy as np
import pandas as pd
data = pd.DataFrame(columns=['Age', 'Score'])
data['Age'] = [19,20,24,19,24,24,24,20,19,20,22,22]
data['Score'] = [1,2,3,2,3,1,3,1,1,3,2,1]
_, bins = np.histogram(data['Age'], 2)
df1 = data[data['Age']<int(bins[1])]
df2 = data[data['Age']>int(bins[1])]
new_df = pd.DataFrame(columns=['Age', 'Score'])
new_df['Age'] = [str(int(bins[0]))+'-'+str(int(bins[1])), str(int(bins[1]))+'-'+str(int(bins[2]))] …Run Code Online (Sandbox Code Playgroud) 假设我有一个A项目ID 向量:
A=[50936
332680
107430
167940
185820
99732
198490
201250
27626
69375];
Run Code Online (Sandbox Code Playgroud)
我有一个矩阵,B其行包含向量中每个项目的8个参数的值A:
B=[0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 0 1 0 0 1 0 1 1 1
1 0 1 0 0 1 0 1 1 1
0 0 1 0 0 0 0 1 0 1
0 0 0 0 0 0 0 1 0 0
0 …Run Code Online (Sandbox Code Playgroud) 有了treeplot,我明白了:
nodes = [0 1 2 2 4 4 4 1 8 8 10 10];
treeplot(nodes)
Run Code Online (Sandbox Code Playgroud)
如何像树状图(具有直边/分支)绘制树?就像下面这个图,我用Python绘制了以下图plotly,但不是同一棵树,但它只是为了展示我想要的可视化类型:
当我检查文档时treeplot,它说:
treeplot(P,nodeSpec,edgeSpec) allows optional parameters nodeSpec
and edgeSpec to set the node or edge color, marker, and linestyle.
Use '' to omit one or both.
Run Code Online (Sandbox Code Playgroud)
但它没有说明制作直边树而不是默认"角度"树的任何选项.
假设X是给定的向量:
X=[1
2
4
2
3
1
4
5
2
4
5];
Run Code Online (Sandbox Code Playgroud)
Y是X中给定元素的子集:
Y=[3
4
5];
Run Code Online (Sandbox Code Playgroud)
所需的输出是Y中元素出现在X中的次数:
out=[1
3
2];
Run Code Online (Sandbox Code Playgroud)
我这样做的解决方案是使用for循环:
for i=1:size(X,1)
temp = X(X(:,1)==Y(i,1),:);
out(i,1) = size(temp,1);
end
Run Code Online (Sandbox Code Playgroud)
但是当X和Y很大时,效率很低.那么,如何更快地利用矢量化呢?我知道hist和histc,但我想不出如何在这种情况下使用它们来获得所需的输出.
假设我有一些元素的数组,我想在CSV文件中保存与每个元素相关的数据.这是我的代码:
require 'rubygems'
require 'csv'
category_ID = [-1, 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 15, 17, 18, 19, 20, 21, 91, 92, 93, 94, 101, 102, 103, 104, 105, 106, 107, 111, 112, 113, 114, 115, 116, 117, 118, 119]
CSV.foreach('C:\Users\username\Desktop\Original.csv', :headers=>true) do |row,i|
category_ID.each {|x|}
CSV.open('C:\Users\username\Desktop\#{x}.csv', "wb") do |csv|
if row[4].gsub(/^[^:]+:\s*/,"") == x
csv << row[28].gsub(/^[^:]+:\s*/,"")
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以我想我的文件名是-1.csv,0.csv,1.csv,..., 119.csv.但它因为#{x}文件名而出错.怎么纠正这个?谢谢.
编辑:这是 …
该文件GoogleNews-vectors-negative300.bin包含3亿个字向量。我认为(不确定)在编写以下行时已加载此文件:
from gensim.models.keyedvectors import KeyedVectors
Run Code Online (Sandbox Code Playgroud)
我想下载我在名为的列表中从外部给出的单词的向量words。这是我执行此操作的代码:
import math
import sys
import gensim
import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')
from gensim.models.keyedvectors import KeyedVectors
words = ['access', 'aeroway', 'airport', 'amenity', 'area', 'atm', 'barrier', 'bay', 'bench', 'boundary', 'bridge', 'building', 'bus', 'cafe', 'car', 'coast', 'continue', 'created', 'defibrillator', 'drinking', 'ele', 'embankment', 'entrance', 'ferry', 'foot', 'fountain', 'fuel', 'gate', 'golf', 'gps', 'grave', 'highway', 'horse', 'hospital', 'house', 'landuse', 'layer', 'leisure', 'man', 'manmade', 'market', 'marketplace', 'maxheight', 'name', 'natural', 'noexit', 'oneway', 'park', 'parking', 'pgs', 'place', 'worship', 'playground', …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,除其他列外,还包含 3 个标题为Gender(或M)F、House(或A或B)C和Indicator(0 或 1)的列。A我想绘制按性别着色的House 的直方图。这是我执行此操作的代码:
import pandas as pd
df = pd.read_csv('dataset.csv', usecols=['House','Gender','Indicator')
A = df[df['House']=='A']
A = pd.DataFrame(A, columns=['Indicator', 'Gender'])
Run Code Online (Sandbox Code Playgroud)
这会正确导入 House A 各自性别的值,如其内容所示:
print(A)
Indicator Gender
0 1 Male
1 1 Male
2 1 Male
4 1 Female
7 1 Male
8 1 Male
11 1 Male
14 1 Male
17 1 Male
18 1 Female
19 1 Female …Run Code Online (Sandbox Code Playgroud) 我使用这样的pytextrank包创建了一个图形对象:
import pytextrank
### ...........................
### Some steps and calculations
### ...........................
graph, ranks = pytextrank.text_rank(path_stage1)
Run Code Online (Sandbox Code Playgroud)
我可以使用这个networkx包来制作这样的networkx图画:
import networkx as nx
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(50,50))
nx.draw(graph, with_labels=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,这些词主要集中在中心周围.我希望看到各类词之间的分离更高.我怎么做?
我有一个时间序列矩阵X,其第一列包含用户ID,第二列包含他们在不同时间使用的项目ID:
X=[1 4
2 1
4 2
2 3
3 4
1 1
4 2
5 3
2 1
4 2
5 4];
Run Code Online (Sandbox Code Playgroud)
我想找出哪个用户使用了多少次项,并将其保存在矩阵Y中.Y的行以ID的升序表示用户,列按ID的升序表示项:
Y=[1 0 0 1
2 0 1 0
0 0 0 1
0 3 0 0
0 0 1 1]
Run Code Online (Sandbox Code Playgroud)
我用来查找矩阵Y的代码使用2个for循环,这对我的大数据来说是笨重的:
no_of_users = size(unique(X(:,1)),1);
no_of_items = size(unique(X(:,2)),1);
users=unique(X(:,1));
Y=zeros(no_of_users,no_of_items);
for a=1:size(A,1)
for b=1:no_of_users
if X(a,1)==users(b,1)
Y(b,X(a,2)) = Y(b,X(a,2)) + 1;
end
end
end
Run Code Online (Sandbox Code Playgroud)
有更多时间有效的方法吗?
我在文件中有一些网页链接article_links.txt,我想逐个打开,提取文本,然后打印出来.我的代码是:
import requests
from inscriptis import get_text
from bs4 import BeautifulSoup
links = open(r'C:\Users\h473\Documents\Crawling\article_links.txt', "r")
for a in links:
print(a)
page = requests.get(a)
soup = BeautifulSoup(page.text, 'lxml')
html = soup.find(class_='article-wrap')
if html==None:
html = soup.find(class_='mag-article-wrap')
text = get_text(html.text)
print(text)
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误说, ---> text = get_text(html.text)
AttributeError: 'NoneType' object has no attribute 'text'
所以,当我打印出soup变量以查看ts内容是什么时.这是我为每个链接找到的内容:
http://www3.asiainsurancereview.com//Mock-News-Article/id/42945/Type/eDaily/New-Zealand-Govt-starts-public-consultation-phase-of-review-of-insurance-law
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Bad Request</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/></head>
<body><h2>Bad Request - Invalid URL</h2>
<hr/><p>HTTP Error 400. The request …Run Code Online (Sandbox Code Playgroud)