鍍金池/ 問(wèn)答/ 數(shù)據(jù)分析&挖掘問(wèn)答
陪妳哭 回答

首先 json_decode($data, TRUE),之后直接取$data['restaurant']['dishes-select']['options'], 如果你非要循環(huán),那就用遞歸函數(shù)

朽鹿 回答

這有啥需要遞歸的, 一個(gè)for 加個(gè)if 判斷不就完事了。。。 或者你的想法沒(méi)有表達(dá)清楚?

字典取值
···python
for i in list:

if i["isEnd"] == no:
    request
else:
    break

···

我以為 回答

你可能需要先去一個(gè)醫(yī)學(xué)庫(kù),把所有的疾病名稱都獲取到。然后用疾病名稱去搜索。

逗婦惱 回答

用正則表達(dá)式啊!你用正則計(jì)算兩個(gè)指定字符之間的字符,你那肯定是要獲取標(biāo)簽里面的內(nèi)容吧!因?yàn)槟阕ハ聛?lái)的已經(jīng)不是html了,而是一個(gè)長(zhǎng)長(zhǎng)的字符串。我給你提供一個(gè)方法

var str = "1222223";
str = str.match(/1(\S*)3/)[1];
alert(str);//結(jié)果22222

就這么搞就ok了!我之前也搞過(guò)這種。

話寡 回答
  1. $servername改成linode的ip地址
  2. linode上mysql的root用戶,允許遠(yuǎn)程訪問(wèn)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
  1. 檢查linode上my.cnf文件,綁定地址不能是127.0.0.1
賤人曾 回答

set里,只有值和引用地址都完全相同,兩個(gè)元素才算是一樣的

慢半拍 回答

3D圖形好像沒(méi)有填充方法,需要先轉(zhuǎn)換成3D Polygon。下面是我根據(jù)SO上的一個(gè)回答寫的一個(gè)測(cè)試,你自己體會(huì)一下吧。
注:這個(gè)方法來(lái)自SO,原帖地址:https://stackoverflow.com/que...,不明白的可以去原貼查看。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection

size = 40 
x = [[0] * size] * size
y = list(map(sorted, np.random.rand(size, size)))
z = list(map(sorted, np.random.rand(size, size)))
vect = []
for i in range(size):
    vect.append(list(zip(x[i], y[i], z[i])))
poly3dCollection = Poly3DCollection(vect)

fig = plt.figure()
ax = Axes3D(fig)
ax.add_collection3d(poly3dCollection)
ax.set_xlim([-1, 1])
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_zlabel("z")

plt.show()

圖片描述

尐潴豬 回答
import random
import pygal

class Die:
    """
    一個(gè)骰子類
    """
    def __init__(self, num_sides=6):
        self.num_sides = num_sides
        
    def roll(self):
        return random.randint(1, self.num_sides)

die = Die()
result_list = []
# 擲1000次
for roll_num in range(1000):
    result = die.roll()
    result_list.append(result)
    
frequencies = []
# 范圍1~6,統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)的次數(shù)
for value in range(1, die.num_sides + 1):
    frequency = result_list.count(value)
    frequencies.append(frequency)
    
# 條形圖
hist = pygal.Bar()  # 默認(rèn)的style就是白色背景
hist.title = 'Results of rolling one D6 1000 times'
# x軸坐標(biāo)
hist.x_labels = [1, 2, 3, 4, 5, 6]
# x、y軸的描述
hist.x_title = 'Result'
hist.y_title = 'Frequency of Result'
# 添加數(shù)據(jù), 第一個(gè)參數(shù)是數(shù)據(jù)的標(biāo)題
hist.add('D6', frequencies)
# 直接渲染到瀏覽器
hist.render_in_browser()

你是不是定義style了?

from pygal.style import DarkStyle
hist = pygal.Bar(style=DarkStyle) # 這個(gè)是你的黑色背景
hist.title = 'Results of rolling one D6 1000 times'
# x軸坐標(biāo)
hist.x_labels = [1, 2, 3, 4, 5, 6]
# x、y軸的描述
hist.x_title = 'Result'
hist.y_title = 'Frequency of Result'
# 添加數(shù)據(jù), 第一個(gè)參數(shù)是數(shù)據(jù)的標(biāo)題
hist.add('D6', frequencies)
# 直接渲染到瀏覽器
hist.render_in_browser()

實(shí)在不行把背景清了

from pygal.style import CleanStyle
hist = pygal.Bar(style=CleanStyle) # 清除背景
她愚我 回答

感謝β_3000的啟發(fā),原來(lái)好多東西在紙上畫畫就會(huì)清楚很多。

a = arange(12).reshape(3,4)
i = array( [ [0,1],    
             [1,2] ] )
j = array( [ [2,1], 
             [3,3] ] )
print(a[i])             
print(a[i,j])   

a是一個(gè)二維數(shù)組,用二維數(shù)組i索引后竟然變成一個(gè)三維數(shù)組,如圖:
那么a[i,j]就是在a[i]上再按j索引一次?我不知道對(duì)不對(duì),至少?gòu)慕Y(jié)果上看是對(duì)了。
圖片描述

fillNumberInOneArray 將數(shù)字 m 填入到 第 n 個(gè)小宮格中,為什么要隨機(jī)選一個(gè)位置放呢?后期快放滿的時(shí)候,沖突的概率越來(lái)越大,根本不收斂的呀。你都能 judgeElse 了,為什么不能在生成 random 坐標(biāo)之前就排除一下已經(jīng)放了數(shù)字的格子呢?這一步浪費(fèi)的效率不計(jì)其數(shù),甚至導(dǎo)致了算法有極大可能無(wú)法停止。9個(gè)格子有一個(gè)空位,用random去撞這個(gè)空位置,那有 8/9 的概率撞不到,一直死循環(huán)。

已經(jīng)被占的格子提前排除,這是其一。其二,假設(shè)小9宮格都剩下3個(gè)格子,需要放 7 了對(duì)吧,隨機(jī)一下,得到一個(gè)空格子,檢查了一下橫豎,發(fā)現(xiàn)不能放,接下來(lái)你需要標(biāo)記這個(gè)格子不可用,否則下次再 random 還有 1/3 的概率打中這個(gè)不可用的格子,導(dǎo)致算法不收斂。犯過(guò)的錯(cuò),為什么下次還要繼續(xù)犯?下次你就該排除掉它,在剩下的選項(xiàng)里挑,否則這次試錯(cuò)就沒(méi)有意義啦,那這就不是算法,完全就是在碰運(yùn)氣。

function calculateCoordinate(position,n) 也可以精簡(jiǎn)一下,沒(méi)必要那么多 switch-case:

function calculateCoordinate(position, n) {
  // 先計(jì)算九宮格是幾排幾列的九宮格, 我們把數(shù)獨(dú)看成是 3*3 的9個(gè)9宮格
  var nx = n % 3;
  var ny = Math.floor(n / 3); 

  var px = position % 3;
  var py = Math.floor(position / 3);
  // 同樣的套路處理小9宮格內(nèi)的坐標(biāo),
  
  // 轉(zhuǎn)換一下坐標(biāo)系
  var returnX = px + nx * 3; 
  var returnY = py + ny * 3;
  return [returnY, returnX];
}
離夢(mèng) 回答

試試這樣可不可以

df1.columns=['aaaaaaa','','','','']
青檸 回答

先進(jìn)行非空判斷,在執(zhí)行業(yè)務(wù)邏輯,這個(gè)問(wèn)題多半是沒(méi)有獲取到數(shù)據(jù)

朽鹿 回答
df["kscj"] = df["kscj"].astype(str)
result = df[df.kscj.str.isdigit()]
瘋子范 回答

由于request.url是只讀的屬性,所以不能直接更改。
但看了一下源碼,可以嘗試在下載器中間件中這樣寫:

def process_request(self, request, spider):
    request._set_url(request.url + '&t=%s' % self.gettime())
枕頭人 回答

sudo chown -R $USER /usr/local 被這個(gè)問(wèn)題困擾了三天得我,最終執(zhí)行了這個(gè)命令給這個(gè)文件夾加權(quán)限就行了

巴扎嘿 回答

從產(chǎn)品那學(xué)到的:層次分析法https://baike.baidu.com/item/...

實(shí)際應(yīng)用就是:列表排序優(yōu)先級(jí)

心夠野 回答

將 c=Y 改成 c = Y.reshape(400) 或者是 c = Y.flatten()

耍太極 回答

可以用selenium執(zhí)行javascript命令來(lái)下拉窗口,從而使所有數(shù)據(jù)都加載顯示后,再進(jìn)行數(shù)據(jù)提取